{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The autoreload extension is already loaded. To reload it, use:\n",
      "  %reload_ext autoreload\n"
     ]
    }
   ],
   "source": [
    "import torchdyn\n",
    "import torch\n",
    "import torch.nn as nn\n",
    "import matplotlib.pyplot as plt\n",
    "from torchdyn.numerics import Euler, RungeKutta4, Tsitouras45, DormandPrince45\n",
    "from torchdyn.numerics import odeint, odeint_mshooting\n",
    "\n",
    "import torchdiffeq\n",
    "import time \n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class VanDerPol(nn.Module):\n",
    "    def __init__(self, alpha=10):\n",
    "        super().__init__()\n",
    "        self.alpha = alpha\n",
    "        self.nfe = 0\n",
    "\n",
    "    def forward(self, t, x):\n",
    "        self.nfe += 1\n",
    "        x1, x2 = x[...,:1], x[...,1:2]\n",
    "        return torch.cat([x2, self.alpha * (1 - x1**2) * x2 - x1], -1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = VanDerPol(20)\n",
    "x = torch.randn(1024, 2)\n",
    "t_span = torch.linspace(0, 1, 500)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Fixed--step bench"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.10353493690490723\n",
      "0.1136164665222168\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "t_eval, sol1 = odeint(f, x, t_span, solver='rk4')\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "sol2 = torchdiffeq.odeint(f, x, t_span, method='rk4')\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "true_sol = torchdiffeq.odeint(f, x, t_span, method='dopri5', atol=1e-9, rtol=1e-9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7ff3e54fa730>"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8,3))\n",
    "ax = plt.subplot(111)\n",
    "line, _ = ax.plot((sol1-true_sol).abs().mean(1), c='black')\n",
    "line.set_label('torchdyn')\n",
    "line, _ = ax.plot((sol2-true_sol).abs().mean(1), c='red')\n",
    "line.set_label('torchdiffeq')\n",
    "ax.set_ylabel('error')\n",
    "ax.set_xlabel('time')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Adaptive-step bench"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "11.588489770889282\n",
      "0.09324455261230469\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "t_eval, sol1 = odeint_mshooting(f, x, t_span, solver='ieuler')\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "sol2 = torchdiffeq.odeint(f, x, t_span, method='dopri5', atol=1e-4, rtol=1e-4)\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "true_sol = torchdiffeq.odeint(f, x, t_span, method='dopri5', atol=1e-9, rtol=1e-9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "No handles with labels found to put in legend.\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7ff3c9582dc0>"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3cAAADQCAYAAACkwpjdAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACTCklEQVR4nOydd4BU1fmwn3Pv9NnZnS30pYogigWw94IFsIuaxGhMUZNookk0zZJoTEz0p9EUv9gSe6JBjL2D2EAUUFCU3haW7bvTy733fH/cO21ZigoM5Tx6OP3cd2Z3Z973lPcIKSUKhUKhUCgUCoVCodi50cotgEKhUCgUCoVCoVAovjrKuFMoFAqFQqFQKBSKXQBl3CkUCoVCoVAoFArFLoAy7hQKhUKhUCgUCoViF0AZdwqFQqFQKBQKhUKxC6CMO4VCoVAoFAqFQqHYBXCVW4AvQl1dnRwyZEi5xVAoFAqFQqFQKBSKsjBnzpxWKWWvnup2KuNuyJAhfPjhh+UWQ6FQKBQKhUKhUCjKghBi1cbq1LZMhUKhUCgUCoVCodgFUMadQqFQKBQKhUKhUOwCKONOoVAoFAqFQqFQKHYBdqozdwqFQqFQKBQKhUKxq5DNZmloaCCVSm1Q5/P5qK+vx+12b/F4yrhTKBQKhUKhUCgUOzxSStLpNPF4fLMhlUphGAbZbBbDMPKhe94wDKSUCCHQNA0hRD594IEH8t3vfnebvqaGhgZCoRBDhgxBCFHyWtva2mhoaGDo0KFbPF7ZjDshxEDgYaAPIIF7pZR3lUsehUKhUCgUCoVCsf2wLIvGxkZWr16dD01NTbS2tuZDW1sbsVgsb7RZlvWlnqXrOi6XKx/cbjculwtd1xFCIKVESollWfm0aZrb3LhLpVIbGHYAQghqa2tpaWn5QuOVc+XOAH4mpZwrhAgBc4QQr0kpF5ZRJoVCoVAodnhySkc6nSaTyeTjTCaDYRhYlrXJkFNgeioH8kpGT/FXrdN1HU3T0DStx/Tm6jfWNjfjrlAodkxisRgzZ85k9uzZLFiwgAULFrBkyRKy2WxJu0AgQF1dXT4MHTqUUChEMBj8QsHn8+UNOJfLtUN/PmxMti8jc9mMOyllI9DopKNCiM+AAYAy7hQKhUKxSyKlJBKJ0NTURHNzcz60tLTQ1dVFNBrdIORmrIuNuHQ6nTfEFAVyW6k2ZgjmZumL442lt0dZOZ6nacqXnmL7IKXko48+YurUqbzyyivMnTsX0zQB++7qfffdl9NOO40hQ4YwaNAgBg8eTP2AAbg1k2h7I5H29US7molGWonG2ojG24klV5Mx0qQTKVqiGRrMNBkzQ8bIkLYyZKwsGStLWmYxpImFxJISC8tO5/PdypwgoSQ/vvIAbr7x7fK+kV+QHeLMnRBiCDAGeL+HukuBSwEGDRq0fQVTKBQKheILIqWkoaGBjz76iMWLF7N8+fJ8WLVqFel0usd+gUCAUChUEvr165efsfZ6vXg8HjweT49pr9eLS9dxawKBibBMwAIBUkgEEiFA4BhBuXMlQiAEaEIAEmlZICVIiZSF7Uk4q332a7RjS0p7/FwbZ2sT2OctBM5WJ+znSuf9sSxn6xP2tizLtJCWhSktkHaZWbLCaMtlWZatmOVXG51tVKajpDljWVIiLXt1M9feNE0n2GnLNMk6ca7cME1Mw8C0LAwjg2WkyKYMkoaJZVkYhoFpmhiGabd12hvOmIV6g2wubRWM8Jw9niuRRZnuZcWmu9wg8dXYEoOweCW0e9xT2Zet25pj7c51O4IMubi5uZlVq1axatUqYrEYAH369GHsviMY3NtDZaVBVo+R1Gcxv3EG77Rm6FqQpc1v0RqQZHW+EC4JHsAjwWOB2xK4LXBZAk2CJgUCNkgLKdAoiovSmhToQCTd9cWE2QEou3EnhKgAngKuklJGutdLKe8F7gU48MAD1TSlQqFQKHYourq6eOutt3jnnXeYN28e8+bNo7W1NV9fXV3N0KFDGbPPcE4/bj8qgzpej0ToGaTIkCFFwkoQNRPErCQpK0PSWk9KriEms7RikBImSc0kpVmkkZgZiZEFMyExBRgamE7Y5RGA7gRFHiE3ku6xzMDCIEOarNxUu9Ky4g1i3cs298yN9tvCMb/yc/N1YqPP7Sm/ZWOW5vmS70VP/djEe79B25L2It9WbrTN5mXbVFlubHssibRAWhJZC6If9D0akl6Ie6Dd00STq4kPivtb4DXBY4LHsOP+XaCb4LJAs0B3gmaBZgkntl+DyIWi11RCbpv5xnY5dPubKbwWu68EOvQNTJNtQs6hS0/lX5SyGndCCDe2YfeYlHJqOWVRKBQKhWJLkFKyYMECnn76aV544QXmzJmDJS0G17jYd1RvJh0fwgr5ifuytOoJGl0xFvnmMtez8TE1C6osQYUl8Fs6Pqnhky586ISFD59w48ODT7rxWC5cQscldHRNxyVc6FLHJe1Y1124NDe60HFpLnShoSPQhW0NCSFACFv5y5+Fc2IBAs2Oi8vpIW8v2RXyJUtNskhvkuRyxYpKYYWvsHTVvdfG+tj1uVVEp3PuXylLx5E9jFno2PNzepBpo2N2fx2bKcuXdpfTWa7rqaxnOQstexq7+F0pXSHcuJw9v1ebqOvpdW7sPZASaf8K9fyzd7R0WSyn6OF1im4/R9GDTGIjMm3ydXZ7f+Qm6jbRr3Ts7m03VUdRXff3vqe6nmTakjZfvP+m6kzTIJXNENMtYj6IO8acY0OjWeA3IJwReFMCj6XhlXbQ7bWy0jE1kNqGMllOKJFXlLbp+bX0ULdBv+LXKUvajHOF2db4fD7a2tqora3t0Vumz+f7QuOV01umAB4APpNS3lEuORQKhUKh2BKWL1/Ov/71L/7770fQU6uo6w9Vw3zsdYjG8iqLVW6DVawDwJ+F/kkX/c0AY2VfJll19Hf1o2+4nuqqPoSr+xKu7k9V3QDCvQdRUdkLoc5CKRSKnQApJc/+9xEefuAa1lY3s3QP26DTLTgwEuRosTcHDj2CAw44hT32Pw7dvYmZLQX19fU0NDT06BUzd8/dF6GcK3dHABcCC4QQHzllv5ZSvlg+kRQKhUKhKGCaJlP+8xhTHryRFms5rcNg2TfAcLYE9kqkGZepZYIcwoiqvRgxZBwj9jmafnscoIw1hUKxS2GZBg/99Sc8PPteZg3LkDoc+kcFF2T24ox9zufoUy6joqZvucXc6XC73V/oHrvNUU5vme/QbQuwQqFQKBQ7Ak1rlnHnn77Du23vMm+oSexIe1b6oM4g18j9OGjwUYw75CwGjjxYGXEKhWKXJhXr5IH/933ubPgvS2ssqgbBGc39ueLMGzjilEvUZ+AORtkdqigUCoVCsSMgLYs3n/kLf33pD7zSq4VEL+jlh1M7BvC1wy7m+Ek/JFTbv9xiKhQKxXYhk4jy//72LW5p/R9NQcnINFzy+T7ceNvz9KsfUm7xFBtBGXcKhUKh2K1JxyM89sCV3Lb8MT6vzhKqgyOW+vnaIZdy0a/+hMvjLbeICoVCsd2QpsmTD/yUXy++m+UhgzFNsPcn1fz+r89z2OGHl1s8xWZQxp1CoVAodktSsU7+9tdvcnvHS6wPWoxMwcRpVVx82Z1M/v23enRLrVAoFLsyy+a9wSUPTWZ6dSd7p12M+R/0Gn4S/3n9P1RXV5dbPMUWoDbJKhQKhWK3wsxmePBv32PEjXVck3mBAc2ScY8Izu11LVNfbeLcb1ysDDuFQrFbYWYz3HHL6ez71HjmBDq56NNhfPZ3g7HHfpfnn3teGXY7EWrlTqFQKBS7DR+89hCXvvgDPgonOSDhpnaKSSY0mgeffJCxY8eWWzyFQqHY7jQu+4hv/PVY3qzu4tR4HypX7MPDz0zjxhtv5Prrr1eTXTsZauVOoVAoFLs80bZ1XPmrAzjk3Ytpdqe5eP4IPro7y16Hfo33339fGXYKhWK3ZPrTdzDm3nG8X9HFAzXfoarlBB5/Zhp//vOfueGGG5RhtxOijDuFQqFQ7NK89+I97HvLIP7q/ZjL4nsz4t0DeHDqYm6++WYef/xx/H5/uUVUKBSK7Yq0LO744xmM/+hnVGddvD9hKrM/dfPYY49z8803c9VVV5VbRMWXRBl3CoVCodglMbMZfv+7Ezn6/e+jIXh13zv46J1K3pk9nyeffJJrr71WzUorFIrdDjOb4ce/PoCfpZ/lrOgAPrhuFY8/P5t77rmHX/3qV1x77bXlFlHxFVDGnUKhUCh2OdoalnDyNX25znqdc2ODePP787jutif48MMPefLJJzn33HPLLaJCoVBsd+IdzZz988H8zb+AqzMH8uRtK3n0yf/xxz/+kUsvvZTf//735RZR8RVRDlUUCoVCsUvx6XvPcPrUyTSEDO6v/hZfv/rvjD/xRObOncuUKVM444wzyi2iQqFQbHeibeuY+LtRvFcV4a/Bc7niN0/y/PPPc/nllzNx4kT+/ve/q90MuwDKuFMoFArFLsPzj97ANxb+joCuMeOI+zj4pO9w7rnnMmvWLP773/8qw06hUOyWRFoaOOX3o5hdFePfA6/ivO/9mblz53L++edzwAEH8MQTT+ByKbNgV0D9FBUKhUKx1ZBSYllWj8E0TSzL2qD9pvJb0iaXf/LBH3NV4kn2T/j457lT6bvHGC6//HKmTp3KjTfeyOGHH05jY+NGnwMghOgxbKpuc2Fz4yoUCsW2pKt5Nafcsg8fVsZ4YsjVnPPt22hpaeHMM8+ktraW559/noqKinKLqdhKiI19we2IHHjggfLDDz8stxgKhUKxzZBSkkwmiUajxONxkskkqVSqJO6pLJGIk07GyaYSGJmkHbIpzGwa00hhGhk7mBksM4tlZTGtLJY0kJaBhYFlWUhpIpGAtGMhe84LuxQhkaI4LgSpleZLXmdxfiPpjbbpoa6tN3zeH/pEYNgqENaGfXp+wzcsEt3LtqTNVh5LdEsV53tOg20rig16iVylLLQR0q4QRT8cu0zke+XGzrUpyYvu5U5OFFrlSktfi9hAnhIZnLEp6p3v5fRBCNthQFE+3086hnOuf5E8mrBHkrmRi/vl2uSeI4okFyIvSaGPM05Rvnu93VfLyyqElh+v+3NEt7QQWmGc7u3z7TT756BpIJ3XJ4Sdz72a4rzQ0IRWOo7Q8nG+jVZoozlyCKes0D43rp3WNL20jxAITUdownnvtZIxNKceIdC03DP0/Li5Z+ZDkZxC09CK225kEqV7fkvafJk+22rcrdUn0dXKWf+3Hx9Wxnhs8NVM+vqNmKbJGWecwXvvvcf06dMZN27cZsdV7FgIIeZIKQ/ssU4ZdwqFQrH1SCaTtLe3097eTltbWz5ua20l0tZIvKuZRLSVVKKDTDpKJhsjayUxZBpDZDB1E8sF0g2WCyw3mC4w3JB1Q9YFGTdkXJB2Q9oFSTdk9XK/chvdAk0WxdKOHfsPKOjSQnYzWjZR32N/ACnp8kLUC8EM1CQdRVhKLEuiQV55zCGdgXLffsXfgvm06KnO6ddTXY/tu9fJTdQV0a1sU88pNnI3NWZxWfd0j2VKn1PsJOQ/F3r4nNlUWU99NjeO3EQ9GynrPqbsLsdm+vRUX/JZWPw52u05AGtrocsHQ1ohlCzt3/3925KyzfbpJkuhXmzQp5DvNlFVPG5+LNFD/YZjih7KcqX5stzkEkU/1+IJpqLXMiy8F397aC47Gpsy7tS2TIVCodgEUkqi0Sjr169n/fr1rG1Yw7rln9K8bintrWuIxZpJpDtIyQRZV4asT5INQMoP8QDEvXaIecAKAaFNP0+zwG/YwWdq+EyBz9LxWzoV0oUPF37hwS89+E0vAeEjoAXwCS9elxe35sate/C4PLhdHjvt9uF2efOx2+3F4/Hjdntxu314vAFcLg8utxdN09FdbnSXJ5/WdBe67sQuT6HM5bFjtx1r+vb9SpGWxU+vPZA7vfP4YXI0f/39PDTdxbx58zjqqKMYOXIkM2bMUNuNviLSspDSKklLy7KNVSlLyoBCvdwwn5tQ7rFPSV4WyqTzHCddmt9IGbZ2m39OTtaSfnTrw4bPIff67BVrKS173I312eA5ReMUlRVec2kfy7KwpB0K40gsaeafaxW995Yjm2W/WKRlj2c5chfLZuWe5fS3iuRE2lMP+edS/OwNy/LvR8l74jw3/3rt96fk50NhHHLti94LoPCc3PuSG4PiMbqXFfrl32tR9OyS/QfO70b3Pvmng+WUUdKGDcdwntG9f05GcnIgya2lFLcsTOAU5wp1hbb00IIN2xRZWBYWSypTdPkle7br9DY84AbDNElnM+i6jtvjLhmjME73ZxflxYZlFJXRrf8GfUSp/Bu06V6ft7VkyTjFfegum9iwTa5csIk2PZS51q9iZ0MZdwqFYrfGMAzWrl3LyhUrWPzxu6xZNo+m5mV0xNcTM7uIu1Mkg5JYBbSHoLUCTA3o44Qi3Ka9clSd0ak2PAzAT9gIUiUqCOtVhD3VVAXChPxhKitqqazsRaiyjspwH0LhPlTWDcAbqMxvo1JsHGlZXH3dwdzpm8ePUwdw5x/mIDSNNWvWMGnSJGpqatQ5kq2EvU3O+Z3cQVaIFQrFpvn5tQfztucDbtbGc+1drwGwcOFCDjnkEEaPHsuMGTPweDxlllKxLVDGnWKnoWTGcAtCbkbzq7Yvpngvevd4U3VfNt7SNl/UucPuhmVZrF61knnvvcrn899m9dpPaE2so0NE6AxkaA9DYxWk3ECtExzq4tA75aJP1sd+qSr6iV70D9fTr7aeXjX11NYOpLb3EGr7DSNU218ZZtsBaVn8/PpDuMM7hx8l98sbdpFIhEmTJhGPx3n33Xfp169fuUVVKBSK7c59d17EbZ4PuDy5L7/+wysAdHV1cdZZZxEIBJgyZYoy7HZh1Jm7XRApJZlMhkQ8TrSrnUhHC7GuNmJdbcRjXcRjHSTjEdLpOJlsikwmTdZIkc2myTpOFwwzQ9bMYJgGhsximAamNDCkHZvSstNYmMLCwkLm/nUcLljOsrwlnK0XAjudK9fIt7OcMx65ektg1xelc+X55f8eltdLzp90X2bfxBL8pvptbOm+OxvsI99IXfeuG6vb0vE2JceXHa/4bEEuX3xmoPs+/+5l+bZF43Q/L5B3lFAs7ybG7L5nfoNzEM6ZLUtI0rok45KkXZBy2UZb0m3/HhXjNsBngD8LXgN8hsBrCjymwG1quC2BJoXzDJF/TcVnBERemsJrokieYtnzKVGo7z6OAMg5TMg9SxRGLknZjdF6aiOK29tthRR2O1F4ar6uJF/0/Py4RZMERW1y5XknCrmemn32zX69Iu9EoTCOVhgnX19cpiE0gcBxvuA4gtCExjstb/J0n2bGN1dxau+JaC43WJLX33iDxnWNnHzKKQysHwh5xw2aI2PBCUPOwYPtqEFD1/Sidk65ZjuXyDmZyLXVih066DqapqMJDc1J5xxMaJrmOIko9CmUCbu97kLX9Hwd+XZ2Xne5Cnm9qC73LC0XF2TuHisUit2HaU/9Hyd/fA3jo3U896c1uDw+LMvi7LPP5vnnn2fatGkcffTR5RZT8RVRZ+52MEzDoGX9GlobV9HWvJau9ia6OpuJRtuIxjqIJ7tIpKIkMzGSRpKUlSIt06TJkBYGac0ko1lkdYusZiuxWd12sJDRbQcLaUeh3SI8TvgC6Ja9Bc1tgcsEl1VwnKBZoDkKp27ZSqtmCXRHodclCKk57QU64JE5JdqptwSaKdClrSDaQaNIdaS7wiyKYhwlUiupL7RxGhWrs3lFNt9e9Pwsispy5PeWF+3LL8RF+867u3DP99twzzvFdUWno2X3f2Vxv25PlKXnAHp+1sZkKH1S6Z7/7mcFKKkp2UdfXC669ylt1X2v/Yb7+Qv76k0hSbosO3gg7oGE43Ck+I30GeDLQigNHhPcpnB+b23jqsT5hAALSVK3x87LVNwub+AX3p/uY5RMDjhlxW1L+vQwebDBGN36062upzabnKDY2Rdwne2wr/fu4nX+DYZTfpwdfcBLkCyLZDssQm44QSNkqbOb7jEbKS+edNGKxu2p/QYTPkUTGposqu/pmc4fQs/1YqNlxWOAKJWvKJ//JJeln+q23EWTOSV1uT6iW50zrug2kVMkp8h9LxVNxnQfI//vBhM6Ij+2KPoP0T3fQ1tR6FU8waKJnLdLivo7EyLdxxK5/lpReZHnzB4na4omdvLtHW+c5CZZnPek2ENmTrbchI8zIaMLvcRzpu3Vs7RNbpIo5/EzN/GhIYomQwqTH7quFyZyRLEXTr1kYkfXXQh9YxM1WunEi9Oe/ISPndd0V74+NzlTPFFTmLD58hM0i2a/xDkf/pyRaS//+dUcXB4fAH/84x955plnuPPOO5VhtxugVu6+Is8+ejurViygM9JMJNFONNVF3IgRt5IkSJPUs8RdBgm3RdwriXsg4vtinu00C4JZ8GfsFQafIfAZ9qqCx9JwWxoeqeNGx4MLD27cmhuP5sarefG6fHhdPnweP153AL8viM8bxOcN4PH48Xn9eLx+vL4APl8Qry+IP1CBL1BBIBDC6wvg9gZwe/24vQFcXv92d5yg2L1Zt3Qer75wP7MXTWdRejXLQglWhwvGYiADw1s1BiZDDPYNYK9BYznk0EkccMSpePy735mrLdqCbFlYpollmflYSolpGkVlVj6NdNLF/Zw+0jKxDMO+x06a9thOWynt9rky+/lO3nGgYZfbabMonR/DGefjxS9zi/8dDmoP8IM9r8Clu7GkxXvvvcdbb83g0EMP4fDDD7dlLXL6kXeI4TjBsIqcexQ7B7EdVTjlxX2RRf3lhnlZaJt3KNG9Xa48V0bRz4SNtwHbyUWJswm6jV/8nyxuJfOTNoXJkaLplpK+xRM5panuUzobm9ApTL50Ly/0tm27bpNDolubbpNAPU3u5PpbolAGhXYbnzwpGqNoAmbD9nKjEzG5vLW5yZjukytFeWszbTcXd9+FoNi12djkTPeJlNykfiBjT7hD6QTMpiZdNpi06aEdErR8XpTUQ0+ekcWGY+briydaChMmFD+vuM1GJmGKJ/Hz8jjttKIxi6dPcs+jKF9IO32d1F7hfbjlr29v2Q9qO6KuQtiGjL3Exbx6s6RMs+xVglAaghlBMKPhN3QClpug9BIUfoLuCoLuIH5vBUF/JaFgDaGKGqrCvQhX96Gmrh81veup6zsQX7BKba1R7Da0rlnErBn/Zsa8F5gXXcTCUJTGSrtOs2BwOwzscDOQ3uzVbwyHHXk2x0y8AJe7POcHTNMkk8nkQzqdLqRTKZLxCKlEjFQyTioRI52Mk04nyKQSGNl0PmSzaUwzY+eNNKZpYJpZDDODaWaxLAPDymJZph1L25AqeNcz8172JBaWdDZKO0aDrQTb6rKVU+hFkWIvCmVWPu/EjlJs5dLdlHE7haO8ykKeUuU69w26wYps4du3RNktLkt6YVkvW2kZ3GoPVTAcCmN1R3TPb+QrT2xJm6Jy0UNqS8bK18lCRshNj7HxcUUPrtdFqVKWb19QiihWnIpkLF3JKi4pVpyKlatuylGuXhQrat13TJSUFKlS3UsprBDl2+UGKFmrKlmZ2iAvKEo75d22FudWqbTiftpGVsO6r1AhCveyCYHIbf3Ntc3dLYco2gos8uVCCMhtCy5agcpvDS5a6aJoazFOubTsX6ScvNLZDu38OJzVM+c+vOLfIikRmo60rLy80nmvtNzfku0KMi9zfoIhN1bRSqXM/1xsLGkhyE0uFHsFLXgBzU8wOF5V6cm7aO6vPDcp5YxR7DW0ZAKmpKx4UifnHbTUw2pJPi+P/SmJLHgUtV+F5bzfjndSK/9Jmp9UsaQjX1G5LMkXT64UvIlSaOG8Z6X53AgU/1vsJRTJ3JpWllVbnLAqSNjwIwHTNOjs7ES4NCorK/MfnKXeMEunb3K53HEaKG7rvM4NPutl0aRH6feCdD5wCt8zpd8P+eeWfB90n+gpHN/JP7nbhMcGu2pEoV9xPt+PDY/6yG7tLAGHN1bx3MOd7GiobZnbkF8dcgOpZIy6XgPp3X8o/QePpE/9MDRduRRTKDaHZRp89v4LTH/nMd5c+TZzvM2sDDtf9JUwNAMjGlyMpz/7DDuSYyZ+l3GHHoXbXdhzLKUknU7T2dWav/Q7EY8RaW8i2tlKtLOFRKyDZLyLRKKTZCJKKh0lnUmQMZKkjSRZM0NWZjAsg6zMYmBiYGIKC0MzMYXE0CSmbseGLjF08iHrslfji7dHZ/QvOLvudoJva77DBYQs3D1XfP9cfiu1MyObS+vSNhzyZYh8+x6V/7wxoTnnBEuNhu53IOVneruNkW9fJHtKN1lRa+DPwug2Dy5HfbVMSSadRhMaPq/XVnqLjKbuFFSOUkNQdmvVY5uiA555W0zm6nJ5SQ922gajbuzZpX1lN7mKFCK6KWdFygolBnv39uQN8JL6ov6lZRtp180o71nB6qZIFRnfX2iVaiPv5y5PsQZsbqrhjotmFSYdild0etwK7KRzny/Qw4pTD2lk6SpTjytO3Z6Xa1c8uVG8dVfLfQ5JUVJesvW3hzFKxqN7XhSNXTKFkf98LJnoyPUR9upT6WRIUT9nUmFtMMKyGouDG9zUpoL5MSJtnQhD0LtXL9yW25n80AryCmF/ZovceFreYC+ZyMiVF2/JdepKtupquv3p7EyW9DzZUVqePwtdtD22NC6cYxaabkuZ3yKb2z7rbHd1tsraZ6Bd+S22uu7Kt9d1HYSGy+WU5bbLOu1zW2iFpuFyuantvfM55lIrdwqFYruRjLTz/rRHmD7nad5uncvcqihdfruuOgEDm6AmolNpBAnqlXi8LrJkScsUKTJkNIOUZpBxWWR0i4xLllzmnXYcp6S/wrSVywSvaZ8p9Zo4zlUo2gYtcFsabpkLuS3ROm7hwi3ceIQbt+bCrXtway5cuhuP7sGlu3G7iu6gc3nsu+ac2Ov2OXfQ+fB4/Hbs9eH1BvB4fLg9Plxubz7k75zTXM69c+78fXPFd9DtzI411i2Zy8H3HoRA8N533mXgqEMAWLJkCYcddhg1NTXMnDmT2trazYyk2JkpuV9vS+Jud+v1VG9vObbyW4yLtyHb24G7lee2GVsWlmn0kLe3HRtGtmhrsbPt2HJW1p3xc1ugi7cKW04be8uyWegvLXJbjXP53FZjyzKRzoqSKe0tzUiJmb8zsHB3XvE2Yiu3clR05529UpVbBbOK0t3uuqPojrzcODK3K8Aq2RpsFfWRJf1t2aR0Vnry244tnBpbnuJVpKK1ovw4+V5FK05C5idaZL61E4ue8j2kKawS5bffOm2s3O+ksOXKTWAUrxCVrHo5fbqvbJVsDe5pjG6THN3b5dKGsCcZc0Ynu/OkyDbghOV+Xn8oUW4xNkCt3CkUiq2GaZp0tLfTsHIxjasW0dy4go62tXR2NRGNtxFLdxHPxkhaCeJaitZAmuYKk/aA7fQEgf3J04eSFZaOAHQMBXuaOuIEG92CijRUZMBvCPyGhtd0UW3peDMufBkXPuHBKzz4dR8+3YvfHcDvDhDwBgn6Kwn6K6moqCZUUU1lVR2VVbWEqurwB8P4gpV4A5V4/BXqPOkORKKrlTPuPorOgMW7Jz+RN+xaW1uZOHEiQghefPFFZdjtBuTv2lObYhSKPK1rFjH2L/ugS8Hcny2mut9QAP7+979zxRVX8Jvf3MD1117rnH028pMbG6SLJkGs4kkH08ynTSNbMtFhZDP5CQ67zi43TcOZGLHbms6zcnW5M9amM0GSnyjBKpz1lkWTLMXnvXMTIEVlsuh4giyayOg+qZE/8y2L2hRNBOW37TqTD7l+e+yzX5l/yl8cpcUoFLspUkraWppYtXg+a1cuZP26ZbS0rqYj2kRXqp1oNkKUBHE9Q9xlEHecAsV80OVzLvLOIYCwExw0q7CfHQmVKRjaBjVRQW3SR427irrKXoQDYSqD1YQqaqiu7EV1dR/qetUTrulLZU1fKqr7qIu9d0Ms0+BbNx7AnKoEz+xxHfsffR4AqVSKM888kzVr1jBt2jSGDx9eZkkVCoVi+2MZWb55+xE0hUzeO+7RvGE3c+ZMrrrqKk499VRuuOE3zplNxe6EMu4Uil0EI5NmzbIFLPtsDg2rP6OxaTltkfV0JNuIGFEiJIjqGaIek6jPotNPfktknqATsLclViegKiWoyGjUZjwMTnmoiPip0INUeSupCtSQJU1jZj2LZRMfh+L26hwwvBn6rgC9NcTwfSZy3ClncPzxx9OnT5/t+bYodlJuuPFYplSt5Xbv6Zx24e8A+zL6iy++mHfffZcnn3zS9oypUCgUuyE3//5kXqlu456qCxh3/AUAtLS0cN555zFo0CAeeeQRZdjtpijjTqHYgUl0tbLi8zksXTSX1asXsr51Fa2xJjqynXQSp8udoctr0B6QtAW6OfDwkXfOEUpDOAmVKY1QRqdfl5/KzgBVrhBhXw01od70qh1I337DGDh4FENG7E+4V32Pq2Xt65bx6vN38fLiF3lCLGB90D6BMKQNxs4HY4WgsnYcx02czIQfTGDffffN3x+oUGwJj979fX6vv8sl8b34yfVP58uvu+46nnjiCf70pz9x7rnnllFChUKhKB+vPXkLv5XTuTA2jEuufxiwj0x885vfpKWlhZkzZxIOh8srpKJsKONOodjOZJIxGpfPZ9niOSxfPp81TUtZH22kJdNOh4jT6crQ7jdpC8j8KlieajtUpKE2DlVJjd4xN8O7fIRFiLC3mppQX/rUDaZ//UgG7TGaPUaNI1zb+0vLa2YzzJn+GC/NfJiXOz5kdlUMS4NqHfZaBnssg2ikjoOOO4MJF09g/PjxVFVVfaX3SLH78u7zd/Pdxns4Lhbm77fMyU8w3Hfffdxyyy1cdtllXHPNNWWWUqFQKMpDw+ez+cbca9k74+X/XT8z/xl588038+qrr3LvvfcyZsyYMkupKCdl9ZYphPgncCrQLKUcvbn2ylumYkcmFetk3bKPWfL5ByxfOZ+GlhU0xdbTku2gTYvT5s3QErBoC27YV0ioi0N1LLe65qbS8lOlV1ET6EWv6noG9B/B4D32Y8R+h9Jv4LBtuhrWtOITXn3pb7y07GVeda+mzS8REvZZC7VLoW2ZoHbIEZwycRITJkxgv/32U6tziq/M8o/f5JB/H0911sWsqz+npt8wAF599VUmTpzIiSeeyHPPPYfLpeYlFQrF7kc2GeeYX/VlQTDGh2e+yMiDJgD2Z+Qpp5zChRdeyIMPPqi+j3cDdmRvmQ8CfwMeLrMcCsVGibWvZ+3yj1m6aA7LVy5gbetKmhJNtBqdtOoJWn1ZWgLWhufXQqAHoVcMaqJQ3aUzuCVAFRWEPbXUVdXTt+9wBg8fw/DRhzBw8FBCoVBZXqORSTHr1X/y8uzHeSk6l7nhJAC9NNhrEVhLoS3Si4PHn8aEy+3VObXlQ7E16WpezWkPnYLphee/8XzesJs/fz6TJ09m9OjRPPnkk8qwUygUuy0/v+lIZlbHeGLAVXnDbs2aNXzjG99gn3324e6771aGnaK8xp2U8i0hxJByyqDYPZGWRVfLGhqWfcySxXNYufpT1ravojnRTKvZRZsrSYsvS0tQEvN26xwGT0XBaOvb5mLEej+VIkS1r4668ED69RvBkBHjGD76YAbUDyQQCJTjZW6StYs/5OWX/8bLK1/nNe9aunygCxgdgWPmQPMyQe3Qw5gwcRITfzOR/fffX31pKLYJRibF+beMZXEozatj7mDEuJMAWLduHZMmTSIUCvH888+XbfJDoVAoys2UB37Gnb6P+HFqf8773p8ByGQynH/++aTTaaZMmUIw2MPWIMVuxw4/BSqEuBS4FGDQoEFllkaxoyMti86mVaxaMpcli+ewquEz1rWvpinZTKuM0OpK0uYzaK6QJN3dOldDIAh1MXt75MAWN3s3+qgSlVT7e9GrehD96vdi2F4HsceosfTr3x+fz1eW1/llyCRjvPvyvbw85wleSsxnQVUKgH4C9l0I2aXQGqljzPhTmXDFBE488USqq6vLLLVid+AnNxzMK+E27gtfxHFn/QSAWCzGqaeeSmdnJ2+//Tb19fVlllKhUCjKw+IPXuY7y+7gkGSQ2/7wTr78F7/4BTNnzuSJJ55g5MiRZZRQsSOxwxt3Usp7gXvBPnNXZnEUZUJaFu3rlrHs89ksXTyX1esW0di5huZUK60yQrs7RYvfpLlCki7+rRZAre0tsi4K4ZhgaJeb/df5qNSqqPH3plfdEAbU783QUQcxbOR+9O3XD4+nuyeTnZPVC2fy0it/4+XV03k90EjMA24NRncIjp4NjUuh1x6HccrESUz8rb06p1wnK7Ynf/+/8/ibfwE/yxzI9658CADDMPja177G/Pnzee655zjggAPKK6RCoVCUiURXK5MfPxOPV/DkJa/h8VcAMGXKFO68805+/OMfc95555VZSsWOxA5v3Cl2bSzToLVhMUsXzmbJkrk0NC6msWstLelW2ojS5k7T6jdoroBM8W+rG+hlX4xdF4VwXDC8y81YM+A4IelL77ohDBi0D3vscwhD9tyHPn367PLnddLxCG+9eDcvz5vCS6kFfFaVAWCAgDHzIbUEWqK17HfiqUz88US1OqcoKy//52Z+HP0vp0X68Kdb3wVASsmVV17JCy+8wD/+8Q8mTJhQZikVCoWiPEjL4ge/O4RPqtK8NOpmBu19GACLFy/mO9/5Docccgi33XZbmaVU7Gjs2pquoiyY2QwtDYtZ9vmHrFw+n4b1y2jqbKA12UqHFaFdT9LhydIWsGgLgNnD3WzhJNRGoTqhMbLLy0FWkLCrmtqKvvTpNYz6waPZY/ShDBk+itra2t16tWn5x2/y0mt38/LaGUwLNJPwgEeHfVvh6Jmwdhn0Hn4oJ086lQk3TuCAAw7Yrd8vxY7BJ+8+zXnzr2e/pJ/Hr/8I3W2vlv/5z3/m7rvv5pprruGyyy4rs5QKhUJRPh74y8U8HFrOb+QxnHz+tQAkEgkmT56Mx+PhySef3GV2Gim2HmU17oQQ/waOBeqEEA3Ab6SUD5RTJkXPZJIx1q1YyIolH7Fq5SesXb+U5q51tKfbaLeidOpJ2r1G3mAruUzbBdSB17DPs4XjUB3VGdQWICQDhD3V1Ib607f3MAYN25/hjtEWCoWUA48eaF+3jOkv/4PXF73I68ZillYaAAyyYNxHkFwCMWsg406YwAk/OYHx48dTU1NTXqEViiKaV37CqU+fS4Wm8dz3Z1BR0xeAp556iquvvprJkyfzxz/+scxSKhQKRfmYN/1xrmh7hBOjNVx/26uAvbPhhz/8IZ988gkvvvii8kWh6JFye8v8ejmfv7siLYvWdctZ/tkcVq9ayPr1y2lpb6A93kJHppMuGSOipenyZOnymXT4IdLdb4izwubL2pdpV8cFtVGdIR1+Kqkg7ApTE+pH77rB9B84iiEjxjJ05H7U1tWh63o5XvZOSzLSzruv3s/rH03ltdh85oWTSAEhHfZaA0e/C22NQUYdPIHxp4/nxBNPZNiwYeUWW6HokVS0gzPvPIzmCpO3j3uE+pEHAfD+++/zzW9+k0MPPZSHH35YrS4rFIrdls71K5n8wreo03Qe++k7+Z0NDzzwAA899BA33HADp5xySpmlVOyoqG2ZOzHSsoi0NbJ62aesW72IpvUraG1bS3ukia5EG12ZCFErTlQk6XJniHhNOvySDj8Y3e2rKjv4slCTgKqkoDKl0Svmo8LyUamFqPRWUx3sRZ/ew6gfvDdDRo5j2Mj9CFVWqhW2rYiRSTFvxhO88f6/ea3lfd6t7CTtsh2h7N0FR8+DztU6dUOPYPxJExj/0/GMGTNGGc2KHR5pWXznNwcwszrGU4OuYdwJ3wRg+fLlnHbaafTv359nnnkGv7/7pZEKhUKxe2CZBhf96VBWhwxmHHYPvQaNAmDevHlcccUVjB8/nhtuuKHMUip2ZJRxV2ay6STr1yylqWEZLU2raW1ZQ1vbOtoj6+mKtxHJdBE1Y8RIEdOzxNwGUa9F1Cvp9EO2uz6vAWE76BZUpSCcgMqURt+ohz07vYQIUOUJEw7UURseQJ8+QxkweBRDR46h/6Dh+JRitV1JxyN8+OZjvDXvf7zZ8iEzg+1Enbv1RmTgkNmQWqVR2fcQDj/mRI658BgOPfTQHfLuPIViU9x403H8u2o1f3SdwtnfvhWA9vZ2Jk6ciGEYvPjii/Tq1avMUioUCkX5+MPvT+a5cBN/CZzD4RMuBaCzs5PJkydTV1fH448/riZzFZtEGXdfkY9nvsqaFQtpb11LR+d6ItE2Iol2YukICSNO3EqQJE1Cy5LQDRJui4THIuaBmBcSGzsHW2kHIW2PkFVJqEgLKjI6NUkvQctDkAAhVwUhX5iqYB014X706j2YPv33oH7Y3tQP3Qu/MgB2OOIdzcya9hAz5j/Hm+0f8UFVlJRz595wAw6YD6zVqao9iEOOncQx3ziGgw46aKe6U0+h6M7j/7icG8VbfDu2Jz//0wsApNNpzjrrLFasWMFrr72m7mlSKBS7Na/85/fcYE3jgugQrrj+ScA+Z3fxxRezevVqZsyYoSbAFJtFGXdfkYv/NZGPBpiFggonYBtmoTRUpG3DzJ8VhDI6vRNe/NJDAC9BLUDAXUGFt5JQsIbKUB21tQPo028YA4aOYuCwvamorCrLa1N8daRlsXz+m8yaNYV3ls1gdmoZ86vTGLq9yDoyAwd/CHprgF4DDufAI0/iyG8eybhx45QHLMUuw/Spt/PttXdzTLSKf9wyF6FpWJbFt771Ld566y0ef/xxjj766HKLqVAoFGVj5YK3+cZH1zM64+OeG2YjnHPHt99+O8888wx//vOfOfzww8sspWJnQBl3X5HvDrqQrmgrVaE6wtV9qe1VT+9+Q+gzYA/61A/F7fGWW0TFdqSreTUfvPUf3vroeWZ2zGdeRRdtzuJp0AN7tsCRn0Mo3Y8he5/MYceexGGHHcbgwYPVuUXFLsnHbz3JmR9ezZ4pL0//Yl7+At6f//znPPHEE9x66618/evKt5ZCodh9SUbaOeefJ2P6JFMvep5g2F6de/vtt/nlL3/JOeecw5VXXllmKRU7C0JKWW4ZtpgDDzxQfvjhh+UWQ6EAoK1hCXNnTmXm/FeZ27aATz3tLAubSMdGG9YC/RqgsrOC3jX7MeqgiRx2xFEceOCB6rycYrdg5SfvcPjDx6BLwczvzcx7xrzrrru46qqruOKKK/jLX/6iJjYUCsVui7QsvvvzkfwrtJTn9rieU795EwDr1q3jwAMPpKKigg8//JDKysoyS6rYkRBCzJFSHthTnVq5Uyg2g7QsVn82k1nvTmXWZ9P4JLGczyqirK10JkZc0N8H9Y2w5yI/ff17steYUzl48omMGTOGqiq1rVax+9HWsIRT/nUCSY/kndOm5g27p556ip/85CecddZZ3HnnncqwUygUuzV33Xo2/wot5Xp5VN6wS6fTnHPOOUQiEV555RVl2Cm+EMq4UygcbCNuFjPfmcpHi99lcWQZy90dLAsbxJzdtaIKhhgwZLXgoGQ1/apGMnK/kxh7/Hj2339/9QGsUACJrlZOvX0sKysyvHbwX9nn8DMAeOedd7jgggs47LDDeOyxx5THN4VCsVvz4mO/5WfJZzg72p/f3jYNsB2oXH755cyaNYspU6aw7777lllKxc6GMu4Uux3RtkY+fPsZ5i+YwdLGT1iVWstqb4Tl1Wb+CgIqoZcG9S1wxHofvbW+DBkwhnFHnsPYQ4+mvr5erTgoFD2QinVy1m/24v1wjCmDr+Go064A4PPPP+f0009n8ODBPPvss+ouO4VCsVvz6Xv/42uf3sj+ST8P3zAPTbdV8n/84x888MAD/PrXv+acc84ps5SKnRFl3Cl2OSzTZPH8WXz8wWssXTaHVa2LWWc0sd4Tp6HKoClU1LgP9I5CfbvG0csq6Ofqz5D++7PvQZMYe/gJ9O/fH83xWKVQKDZNJhnjvOv34tXqNh6ovjh/l92aNWs4+eSTcbvdvPzyy9TW1pZZUoVCoSgfLas/47Sp5xLUNJ79/gyC1b0B24HKj3/8YyZOnMhNN91UZikVOyvKuFPsVKTTadasWsFnc95k2eLZrFu/iKbYWtpkO62eJC1Bg8YqSDr3xhEABkGvGAzo1BjTGKRPUx0Dqoaxxx4Hsd+hE9l37KF4vcqrqULxVTAyKS64di+eCzfx94rz+c6P/wVAU1MT48ePp7Ozk+nTpzN06NAyS6pQKBTlIx2PcPYdh9JYYTDj6H/mzyOvWbOGyZMnM3ToULVtXfGVUMadoqxYlkV7ezstLS2sW7OS1Yvnsr7hM1rbVtEZX0/E7CSixenyZOgKmLRWQFuQvEdK+tpRrxj0iWkMjvoZ1xWir68vA3uPYMTIgxl3xKnUDxtVtteoUOzqmNkM3/7V3kypWssd3jP44c/+A0B7ezsnnngiDQ0NvPbaa4wdO7bMkioUCkX5sEyD792wP+9UR/hP/x9z8EnfBiASiXDqqaeSTCZ58803CYfD5RVUsVOjjDvFV0ZKSSwWo7OzMx/a21ppXbeC9vXL6WhbTTTaRDzVQdyIkBBxEnqGuDtL3C+JBqAzAF25Izh+oN5Oahb0ikNdQqN32seotgrqIjX0r6pnWP1o9trncEYfOJ5AldrmpVCUA8s0uOzX+/Jo5Qp+r53IT375PwCi0SgTJkxg0aJFvPDCC+ryXYVCsVsjLYtrrj+ERytXcrM2nvMvuQsAwzA4//zz+fTTT3nhhRcYNUpNRiu+Gsq4240xTZNoNEosFiMajebTXR1tdLaso6u9kVhXK/FoG/F4G8lkB8lMhJSZIEWStJYl4zJIeSzSPkh5Ie6DqA8iPmd1TQd6O8HBa0BtQhBOa4SzbgYn/VRnQtSlauhXVc/Afnuyx7D9GTR8DL0G7oXu9pTpHVIoFJvCyKT49q/25tHKFVxvHcWvf/MqAMlkktNPP505c+YwdepUxo8fX2ZJFQqForzcdsup3OGdy4+S+/HrP7wCFDxjvvzyy9x7772cfPLJZZZSsSugjLsdFCkl2WyWdDpNOp0mFo3S1dlGpL2ZSEcL0a5WYpF2kvEu4vEukokIqVSMdCZBOpsknU2QNdNkzDSGzJKRWbJalqxmktFNMi6LrBvSHjukPJD0QNwD6eLfioATeqAyBZUZQWXGRchw0Ut6qEz5qDQqqMqEqA3W0ae6nv69h9C37zDq+g6jrv9wguHeCOWkRKHYqUnHI3ztur34X7iRP+gn8avf2MpKPB7n9NNPZ8aMGTz22GOcfvrpZZZUoVAoysu//vIdfmG8xNcjg7nz1jl5Hei2227j3nvv5Ze//CWXXHJJmaVU7Coo4+4r8sdfn8Xa1mVkzSyGlcWwDLLSwJBZDGliYGJiYkgLQ1iYwsLQLEwhMYTE1CSGJjE07LQOhoYd65DRbWMr5QJrY/aQzwmbQEioyEAgC4GsRsBw4Tc16qSLgOEhYHoIpH1UuIJUeIKEfJVUBsNUVdQQDtVRU92XqnBfwrUDCPcaSKimn1pRUyh2U+IdzZx14yheq27nr4HJXHHNfwH73MikSZN47733eOihh/j6179eZkkVCoWivDz3yHVc0vYvTuqq5cFbPslfefDkk0/yi1/8gvPPP5/f//73ZZZSsSuhjLuvyH9bnmNuvVlSplvgNsHtxC4n7bLAbQpclrDbWAKX1AhIDZep4TLsvAsdN7odCxde4cGre/G5vPhcfvyeAH5fBUFfBUF/iFBFNRUVVYQqa6ioCOMPVOELVNohWIW/ohqPv0KtlikUiq9MV/NqJv1hNDOrovyr9rtcfMX9AHR0dHDKKacwd+5c/vOf/3DuueeWWVKFQqEoL9Om3s55i37PuHiQp274BI+/AoDp06dz0UUXccQRR/Dggw+qK5cUWxVl3H1FnvrZh0hp4Q9WEqqqwV9RmZ+VUSgUil2JVZ++y6kPnMCiyjRPDPopk797OwAtLS2cdNJJLFy4kKeeekptxVQoFLs9bz79Z06dezXDE15e+OkcKmps997vv/8+p512GsOHD+eZZ57B59vM1iuF4guyWStECCGAeinlmu0gz07HXXd9l6Z4Ix7Ng0f34tW9eF0+vG4/Xk8AvzeIz1uBPxAi4K8kWFFFsKKaisoaQuFaKqt7Ea7pQ7CyGk3daaJQKHZQZr/6L05/43ukvBYv7vcnxk/+OWDfzXTKKaewfPlynn32WeUQQKFQ7PbMeOYuJn34U4Ymvbzx4znUDRwJwPz585kwYQJ9+vThtddeo7ZWefpWbH02a9xJKaUQ4kVg3+0gz07HrPQC5g3Oljoh6Y4FxJzQ0nMT3YJgBgIZ8GfBlxX4sgKvoeExNLymjsdy4ZEuPHjwaF48mg+fqwKfpwqfvxp/sBZ/ZW8C4b4EQ1X4fL588Pv9+Hw+KisrCYfDhMNhPB51Zk6hUGyeKQ/8jAtX3EE/08X0s59h1CGnAgVFJRaL8dJLL3HssceWV1CFQqEoM9Om3s7pc65mcNLDtB99SO8h+wDw+eefc9JJJxEIBHj99dfp169fmSVV7Kps6f7BuUKIg6SUH2xTaXZCZv4zA4CRzRDraqervZloZyvRrjaiXW3EYx3EY50kElGSySjJdIx0OkEqkyBtJEkbKdJmirSVJi0zpMiQEllSukFKs4j5LZLuLEl3hoQbYh7b0cpGyQItEFwLoRRUpMCfAm8KPElwJUHEwYyDzLiAAJpeiR7oha+qN9XVNXnjr3fv3vTp06ckrq2tRVcrjArFboG0LG69ZRK/NF7msFgF/7tqVl5ReeONNzjrrLOorKzknXfeYd991fyfQqHYvXn24Ws5b8kfGJ708voVs+kzdDQACxcu5PjjjwfgtddeY+jQoeUUU7GLs6XG3SHABUKIVUAcENiLevttM8l2MlxuD+G6voTr+m7zZ2WSMeKdLUQ71tPVvo7Ojkba2htp71pPe7SFzng7nelOOrMxukSCiD9FVzBDq9ugzWsS9eZGMoCIExpwm1CTgKoEVDSA/zNwRcCKQioC0Sh0RAF/HX37DWDgwIHU19czcODAklBfX4/X692Y+AqFYicg0tLAd245lKeq1vK1yCD+dfPH+CrCANx7771cfvnl7LXXXrz00kvU19eXV1iFQqEoM4//43IuarybcbEgL179EbUDhgPwySefcPzxx+NyuZg2bRp77bVXmSVV7OpsqXGnDlHsQHj8FXj8FVT3+3IzP6lYJy1rFtHSuJSWlpW0tDfQ0tVIc7yJFtFOizdCkzfKqj5JGgMWZjcnTrrVih5rRUYX0NEGny22MDsh1gEtHdAYgf796xk+fPgGYY899qCiouKrvwkKhWKbMf/tKUz+3zdYHspyq3siV9/2HELTyGaz/OQnP+Hvf/87p5xyCv/+978Jh8PlFlehUCjKhrQs7rr1bH6aeoZjImGeve5TQrX9AZgzZw6nnHIKHo+H6dOnM2LEiDJLq9gdEFLKLWsoxP7AUU72bSnlx9tMqo1w4IEHyg8//HB7P3a3xsxmaF69kLUr5rN23eesbVnO2q41rE000WC0s8IVZXXAKNkqqlswICLo26VT0SLJrjeJtMLaVmiNQb9+/dhnn33yYfTo0ey9995UVVWV74UqFAoA/vmXb3N584NUZzSeOOoujjrtCgCam5v52te+xvTp07nmmmu45ZZb1BZthUKxW2NmM/zk+oP4q38+Z3f159EbP8EfqgZg2rRpnHHGGdTW1vLaa6+x5557lllaxa6EEGKOlPLAHuu2xLgTQlwJXAJMdYrOAu6VUv51q0m5BSjjbsfEyKRoWPwhK5bMZvma+axoXcryeANLrBY+DySIFfltCadgSKeL2nYda22W9rUWK9ZDJAUDBw5k7NixjBs3Lh/69OlTvhemUOxGdDat4se3Hc8joeUc31HN41e+lT8v8tZbb/G1r32Njo4O7r33Xi688MIyS6tQKBTlJd7RzDdu2p9nw+v5aWYct900K38V1pQpU7jgggsYMWIEL7/8MgMGDCiztIpdja1h3M0HDpNSxp18EJi5vc/cKeNu50NaFmuXzOHzBdP5bMVsPm9dxGfpBj7zRFgftPLtBkYEQ9u9BJqgdWmKZWuhIwEDBgzgwAMP5IgjjuDII49k7Nix6jyfQrGVefXJW/juB9fTGDC5VhzNDde+hu72YFkWt956K9dddx3Dhg1jypQp7LefOmqtUCh2b5Z//CZnPjSBT0Mp7gqdyxVXPwmAlJI777yTn/3sZxx++OE899xzVFdXl1laxa7I1jDuFgAHSSlTTt4HfCCl3K7u0ZRxt2vRvPJTPpr9LB8teZt57Z/ykVzPosoMUtj1e3RqDG8LoK+BpZ/HWNoMbreXgw8+mCOPPJIjjzySo48+Wp3hUyi+JLH29VzzpxP4R2Ahe3V5eHjCvRx04rcAWLlyJRdffDEzZszgvPPO47777qOysrLMEisUCkV5ef2/f+L8Ob/CEvCfMTdz8nm/BiCbzXL55Zdz3333cfbZZ/PII48QCATKLK1iV2VrGHc/Bb4FPO0UnQk8KKW8cyvJuEUo427XJ97RzJy3n2DmgheZ2foRMz1NNAfs39HKNIxtDlC11sPnH0dYtN7C7XJz+OGHc9JJJ3HSSScxduxYNE3bzFMUCsWrT97CD2bfwIoKg59mx/G7X7yKv7IGKSX//Oc/ueqqqxBCcNddd3HxxRcjhCi3yAqFQlE2zGyGP/1xEtcbrzMq6uV/F73A8ANOAKC1tZXzzz+fadOm8etf/5rf/e53ShdRbFO+knEnhNCAQ4EUcKRT/LaUct5WEOwU4C5AB+6XUv5xU+2Vcbf7IS2LlZ+8w8z3nmDG8mlMM5extDILQK+EYExrBb5Vbt6b1U5rHGpraxk/fjynnXYakyZNUp78FIpurPnsfX563zlMqVrL8Iibfx57R95pyvr16/ne977HCy+8wLHHHsuDDz7I4MGDyyyxQqFQlJd1i+fwzbvHM726k/Mjg7jv2lmEauxLyD/44AMmT57M+vXruf/++9WZZMV2YWus3M2TUo7ZykLpwGLgRKAB+AD4upRy4cb6KONOAbB64UymT/8nb6yYxjSxkrUVFkLC2FYve7bUsHRegg+XdOFyuTjuuOM466yzOOOMM+jfv3+5RVcoykYmGePPd5zLTYmXkQKu9Y7n6p8+hTdYiWma/OMf/+Daa68lnU7zxz/+kR/96Edq5lmhUOz2PP/oDVz8yc0kdclf+36bb19+P0LTkFJy77338uMf/5h+/foxZcoUDjywR11bodjqbA3j7v+AmcBUuaV3J2x+zMOA30opT3byvwKQUt6ysT7KuFN0R1oWC96dynNv3sOz7TOZHY4DMCSic3BrHS0LJNPnNSOE4LjjjuOCCy7g7LPPVit6it0GaVlMffAX/PrTu1hcmeXMzn78+btPMmS0vRFj1qxZ/PCHP2TevHmccMIJ/P3vf2fkyJFlllqhUCjKS7yjmV//6ST+4v+Y/Tt9/OfrT7HXwRMB6Ojo4Pvf/z5PPvkkEyZM4NFHH6WmpqbMEit2J7aGcRcFgoCBvT1TAFJK+aVP1wshJgOnSCm/5+QvBA6RUl7Rrd2lwKUAgwYNGrdq1aov+0jFbkDjso94/rk7eGbVK7xW0UzGBcMiLo5s68+yuVneXdCI1+tl0qRJXHzxxUycOFHd1aXYZZk29XZ++fZv+CAcZ+8uL7cd+CsmfuM3gH1v3XXXXcd9991H//79ueOOOzjvvPPU2TqFQrHb88aUW7lk1rWsCBn8KLU/t177Jr6KMAAzZszgwgsvpLGxkZtuuolf/OIXapeDYruzNc7cHSalfHcrC7VFxl0xauVO8UXobFrF1Cd+y7+XP8u0qnYsDca1+RjTPoTXp7ewcl0b9fX1fO973+M73/kOAwcOLLfICsVW4f1XHuCGl37Bq9VtDIzp3DjoIi76/j/Q3R6i0Si33347//d//0cqleLKK6/kt7/9LaFQqNxiKxQKRVnpaFzB1XeczD8rlrBnxM19R9/GMWdcCUA8Huf666/nzjvvZI899uDxxx/noIMOKrPEit2VHfXMndqWqdhurF8+n//89zfc3/QSn1alqcjApPb+yOU1/Pe1TxFCMGnSJH7yk59w7LHHqtULxU6HtCxef+pWbnn3T0yv7qQ2Kfh1+DR+eMVD+CrCpNNp7rnnHm6++WZaWlqYPHkyN998s9qCqVAodnukZfGf+67kp8vupsVvcbV5CL/5+Yv4K+2tlq+//jqXXnopK1as4Pvf/z633XabuoZJUVZ21DN3LmyHKicAa7EdqnxDSvnpxvoo407xVZGWxaxX7ue+af/HE54lJDxwaHuQgyP78MQLy2hqaWPcuHFcffXVTJ48GZfLVW6RFYpNYmRSPPPo9dyy4G7mhBP0j2v8rOZULr30Hipq+pJMJnnggQe47bbbWL16Nccddxx//OMfOfjgg8stukKhUJSdD157iKte+BHvVUcZ2+nnvtPuY+zxFwDQ3t7Oz372Mx588EFGjBjBfffdx9FHH11miRWKrXfmLgCYbKUzd864E4E7sa9C+KeU8vebaq+MO8XWJNLSwIP/upK7mp9lechgcFTnjPhoZsyI8vFnyxk0aBBXX301l1xyCT6fr9ziKhQltKz+jPsfvor/1/UGaypM9oi4+MXAr3PRJX/DG6ykq6uLu+++mzvvvJPm5mYOP/xwbrjhBk466SS1Mq1QKHZ71i2Zy6/vOY+HQsvonRD8YcBFXPyDe9HdHgzD4IEHHuD666+no6ODn//851x//fVKF1DsMGwN404DLgCGSilvEkIMAvpJKd/fuqJuGmXcKbYFZjbDs49dzx0f/YN3qiNUpwQXxfdjwVw30979kPr6eq677jq+/e1v4/F4yi2uYjdGWhbvvXQP90z/P57wLyfjghM6qrlizGWc+vXf4PL4WLZsGf/v//0/7rvvPiKRCKeccgq/+tWvOOqoo5RRp1AodnvaGpbwf/dcxF+sWRgaXCUP5torn6KyVz0Ab7zxBj/5yU9YsGABRx99NH/5y1/Yf//9yyy1QlHK1jDu/h9gAcdLKUcJIaqBV6WU2/UkqTLuFNua2a/+i9+99EueDzdTnRJ8OzmGObNhxsy5DBkyhBtuuIGLLrpIedhUbFfWfPY+D0+5joc6Z7CkMktFBi429+WHZ/2BUYecimVZvPLKK/ztb3/jpZdeQtd1zjnnHH7+858zduzYcouvUCgUZaezaRV33H0hd2bfJuaBr0UH87sL/8keBxwPwGeffcYvf/lLnn32WYYOHcptt93G2WefrSbFFDskW8O4myulHFvsWEUI8bGUcrtOZSjjTrG9+PD1h7nxhWvyRt6lqUOY/naK2XM+Yv/99+fOO+/k2GOPLbeYil2YltWf8czTf+SJFc/zRrgdKeCYjiouHj6Zc75+E6Ha/qxatYpHHnmEf/3rXyxfvpy+ffty2WWXcemll9K/f/9yvwSFQqEoO80rP+XvD/6Qu9Jv0eWDyV0D+O3kv7PP4WcAsGjRIm666Sb+/e9/EwwGue6667jyyivVFkzFDs3WMO7eBw4HPnCMvF7YK3db1YPm5lDGnWJ78+HrD/Pr53/Ca9XtDI+4+bZ7Ivf8ey6rV6/hnHPO4bbbbmPo0KHlFlOxi7B++XyefvoWpqx5hTerOrA02CPi4sLKI7norBsZut/RxONxpk6dyoMPPsi0adMAOO6447jssss466yz1NZhhUKhABZ/+Ap3PPkTHvJ8RsoNZ3b247dn3cn+R58HwNKlS7npppt47LHH8Pl8XHHFFVx99dX06tWrzJIrFJtnaxh3FwDnA2OBh4DJwHVSyv9uTUE3hzLuFOVAWhYvP3EzV3/wBxZWpTmyo5JjzRO5458vYZom11xzDddee62a5VN8YaRlseDdqbz81j95vuVd3glHkAJGRjycW3Ewk0/4EfsdOZlEMskLL7zAf//7X1544QWSySTDhg3j4osv5sILL2TIkCHlfikKhUJRdizTYPrTd/C3d//MM1Xr8ZhwUXovfjr5dvY6eCIAs2bN4vbbb2fq1Kl4vV4uv/xyrrnmGnr37l1m6RWKLecrG3fOIHthX1sggDeklJ9tPRG3DGXcKcqJkUlx/9++ww1N/6HNJ7ksvjfxtSN5+D9PM3LkSO6//36OPPLIcoup2MHpaFzB6y/+lZc+f55XxDLWBS0A9uv0cVbVIUw+8Ur2OewMWtvaeOmll3juuefyBl2fPn2YPHky559/PkceeaQ6C6JQKBTYTlIefOSn3NP6Cksqs9QmBT/wHsEVF/8/+gwdjWmaPPPMM9x+++289957hMNhvv/973PllVfSt2/fcouvUHxhtopxtyOgjDvFjkBX82p+ffsk/p//E/rHNX4amMxfH57NypUrufzyy7nlllsIhULlFlOxg9C+bhlvv/4Ab33+Km8lP2NuZQJLg3BKcGJ6AKcMGc/Jp1xO/z3HMW/ePF544QVeeOEFZs+ejZSSfv36cdZZZ3Heeedx5JFHKmc+CoVCgT3h+tpTt/Loh//kqcAq0i44orOSH4y8gHO++Qd8FWEaGxt54IEHuP/++1m1ahVDhw7lqquu4jvf+Y66hFyxU6OMO4ViGzDr5fu57JUfMT+c4vSOPgxLHMdd9z9BfX09//rXvzjhhBPKLaJiOyMti6Xz3uCDD/7HzJVvMyOzhAVVKQC8BhwareKY8P6cfPA3OOiEi1iztpHp06czffp0pk2bRmNjI0IIDjroICZNmsSpp57KAQccgKZpZX5lCoVCUX6kZfHB6w/x2PS7+I81n+aApDol+Lrch++fdiP7HnE2pmny+uuvc8899/Dss89imibHH388P/jBDzjzzDNxuVzlfhkKxVdGGXcKxTYim0pw5x3n8pvEi/hMwW8C5/OPxz9i0aJFXHPNNfzud79TDi52YdYtmcsHM6cwe+kMPoh8zgf+Djp99mdqIANHxGs4umYMx4w5kwOPvYB1ze288847eYNu9erVAPTu3Ztjjz2WiRMnMmHCBHX2Q6FQKBykZTH/nSk8Pe1uHo++x5LKLF4DTovXc8H+32TCub/GGwjx8ccf8+ijj/L444+zbt066urq+Pa3v80ll1zCnnvuWe6XoVBsVZRxp1BsYxZ98BIXPn4uH4TjfKNrMJVdh/OPf/6bcePG8fjjjzNixIhyi6j4CqRinXz24Uss+HQ6C9bNY0FiBfPdHTQ65+V0C/aN+DnYPZiDBhzMQWMmMXDvY5n38QJmzZqVD62trQDU1tZy7LHHctxxx3HccccxatQodX5OoVAoHIxMindfuof/zXqI/2UXsDJkICQc0xnmm8PO5Jzzf0u4z2AWLVrE1KlT+fe//82CBQtwuVxMnDiRb37zm5x++ul4vd5yvxSFYpugjDuFYjuQTSX4w58m8TvrTfondH5WcSE3/eVZ0uk0f/vb37j44ovLLaJiM3Q1r2bJ/DdZvPR9ljQt5NOupSygmSWhDKazM9JjwN4xP/vq/RjXe38OGn0y9Xsdy6Jlq5k3b14+LF68mNzn6957782hhx6aD/vss4/aaqlQKBRFtKz+jNdfupuXl7zIC64VtPklXgNOjPXmzKETOO30a+g1eG/mzZvH1KlTefrpp1m4cCEAhx12GBdeeCHnnnsudXV1ZX4lCsW2Rxl3CsV2ZPar/+Kbr1zG0lCWX2UO5733XLw54y0uueQS/vrXv6qZxDLT2bSKVYveZ+nSD1i8bj5LulawOLueJd4YzYHC56GQMDTmYl+zjn0rh7PvwAMZtsdhpF19WLx0OQsXLmThwoUsWLCANWvW5PsNGjSIMWPGMHbsWA499FAOPvhgwuFwGV6pQqFQ7Lik4xHee/V+Xp37X16NfczccBKAmqRgYnYIZ+5zDief+TOEN8SMGTN45ZVXeOaZZ1i1ahW6rnP00Udz9tlnc+aZZ1JfX1/mV6NQbF+UcadQbGfiHc18/+ZDebRyBad01DFGO4db/nwPBx10EE899RQDBw4st4i7JGY2Q8uaz1m15ANWrfmEVc2LWRVZw6p0E6tEhFW+FJFutnXfuMaITIgR7r7sGR7G8P77UlM7gqynDytWr8sbcQsXLmTt2rX5fl6vl7322ot99tmHMWPGMGbMGA444ABqa2u386tWKBSKHZ9Y+3pmTXuYtz95gbc75zOropOkG1wmHB6p4qTagzjp0G8y5piv8elnn/PKK6/wyiuv8M4775DJZPD5fIwfP56zzz6b0047Ta3QKXZrlHGnUJQBaVnce9eF/Lj9cfqkdH5Zcxm/vOURfD4fTzzxBMcdd1y5RdxpMDIpWtZ8TuOqT1m3bhGNrStZ17WGxngT67LtrCNKoztFk9/Kb5/MUZWCwSkfg6lisLc3g6sG0bdqMAH/ADKu3jQ0dbJ8+fJ8WLlyJdlsNt8/GAwyatQo9t5773wYNWoUQ4cOVdcSKBQKxUZoXvkp7814lLcXvcbbyc+ZWxnH1ECzYP+In6N8Izhh70kcc8oPWNXYzltvvZUPTU1NAIwePZqTTz6Zk08+maOOOgqfz1fmV6VQ7Bgo406hKCNz3niUyS99m7UBg99pk3jwiWUsXryY22+/nSuvvHK3c6QhLYto2zraGpfT2rSClpaVtHaspSXSSGuilZZUO61GhBYZp1VP0eo26PBJZA9vU6+EoH/GSz8q6Oeqpr+/N70Cvan09cHt6U1KVtHUmWTt2rU0NDTQ0NDA6tWraWtrKxmnurqaYcOGMWzYMPbYY498evjw4QwcOFCdj1MoFIpN0Nm0ijnvPMkHn73BB+0L+EBvYk2FCdjXwBwcreSoytEctfcE9jv0XJaubuL999/n7bff5u2336azsxOAgQMHcvTRR3PCCSdw0kknMWDAgDK+KoVix0UZdwpFmeloXMEFtx7CS+EWfhDbh/VLhvH0M8/xgx/8gL/85S87zb070rJIdLUS62wm1tVMLNJKpKuZzs4mOqMtdMZb6Ux20JnqojMbodOM02El6BRpOvUsnW6TLo/E2oit5DahLqXRK+uhTvrppVVQ666i2l1FyFVFwFWNrlWRtgJ0pt20tnfR3NycD+vXr88rCcXU1tYyYMAA6uvrqa+vLzHghg4dSnV19bZ94xQKhWIXQFoW65bOZf6cF1mwfBYfty/kA9axpLKw22GPiIsDZT8O6rU/4/Y+iYo+Y5m3YCHvv/8+s2fP5tNPP8WybE/DI0aM4Oijj86HwYMHl+ulKRQ7Fcq424Zc+K2BNMsOwlRQ46mmtqIv/XoNZeCgUewx6iD2HH0IHp+/3GIqdgDMbIaf/+Zw7vDO4aSOWg5gMrfedQ8nnXQSTz75JFVVVVvlGcloO8lYB6l4hGS8k2Sii2QiQjIZIZWKkUzFSKZjJNNxkpk4sXSUWCZGLBsnZiSImkliMm0HkSWmGcR0k6jbIu6mxxW07lRkIJzRCRsuqiwPlXiplD4qND9B4ceLD68I4CKIZXrJWD5iaRft8SyRSJTOzk66urpoa2ujpaWlZJtkMTU1NfTu3Tsf+vTpw8CBA0sMuQEDBuD3q79BhUKh+CJE29bxyeznWbDoLeavn8+C1GoW+CN0+Ap6Y31M50CjNwfVjGafQYfiC+/N0oY25s+fz4IFC/joo49IJh1HKTU1HHzwwflw0EEHqTs9FYoviTLutiETLqrkk9oorUFIuTesFxJq41CTEFSnXFQZXmpEiD7+PgyoHcbQIfsyav+jGbn/Ebg8yovijoa0LIxMCtPIYGRSGNk0ZjaDkU1jZFOYRtZJpzHNLNlMikw6QSaTLAlZI00mmyKTTfPG8td5JLiMupRgQscQVi1aib/Cx8h99kJzaaTNjB2sDBkrS1oaZHIBk5QwSAuLpGaS0ixSuiTlkiRdkP2SR8B0yzbIghnwZwX+rMCbFXizGp6swG1ouAwNzQnC0JCGhmVomFmNTFYnlpB0xAxaI2kSqQzpdHrLn6/rVFVVEQ6Hqaqqyqerq6vp06dPiQGXC3V1dbjdPfzRKRQKhWKLsEyD1Z/NYtGnM1i0ai6L2hazKL2WRe4IDc62SoBQGkYnKtjPM5CR4ZHUVgwjo/dn+VrbkJs/f36J1+Dq6mr2228/DjjgAA455BAOPvhghg0bttsdQ1AothXKuNuG3H/7j2huWY2UJsl0nEiinWgmSsyKk5BJ4lqGhMsg4baIeyRRL3T5weimhAsLwimoTEFlWqMio1NheqjAT0gPUu2tJuQP59sXfm6y6F+Q0ioZN9dO5tpt0E/mGpa2QxaNUZyXSCnJ/yctLCdGgCWtfF0hbffPtSuUOX1z7bu3dWK7ZVG5yJWDhcQSubaFNpYAQ9jjm5rEyJfZeVNIzFxeYLfRsMs08umNbR/cFngM8Jj21kS3CS7L9iJWHHQTXAa4sqAboGdBM0AYILKAATIL0rCDlQUhdcCFwAW4EZoHoXkRLh9C92IIH6ZwoWk6mqahaRpCiE2meyrzer34/f7NhkAgsIERFwgE1Je+QqFQbAMyyRirP3+fFUs/YMXaT1jRtowl8TUsopUlwTTpolMBVSkYmQoyXPRikLsfNe4BpI1aljenWbx4CYsXL6alpSXf3uVysddee7Hffvvlw7777suAAQPUZ7pCsQ1Rxt02ZNwlLubWm5tvuJuhWaBJENhxcRBOKM7n2opuZXRvkwuUjpNLl7S37CC6x9JOFweccory+eCUy1ydBCwBEqQUCClsw0joCKEjcKEJF5rmRtNcaLoHTfeg6x403Yvu9uHy+PAQ5c36mawLwTc+G8XUN9YRi8U455xzGDduHF6vF6/Xi8fj+ULp4vzOcpZPoVAoFF8OI5OicdnHrF4+lxWr57OiZTEromtYnm1mhTtGQ8Asmah0mzAk7maPTIgBVg1VVjVWqoLmLjdLGtpZvXpN3ltljr59+zJixAhGjhxZEg8bNkztoFAoysCmjDul+X1F/nzmg3R1NgMghObEIp8XQkB+9kqU1GuavkH7XDtpWTQ3r6ah4XOaW1fSnFxPu9lJmydJW8BgfSXEunkErkpCvy7onfDS2wjR19+fQX1GMWLvI6jrXY8QwgmOnDkPgN2ev8HrcFZnCv10hKbbBo3uQug6QmiOIeMqjFs0xsbYVP22qMutNnUPxStRm2qztWciW9cs4tQ7xvHQ6M+448Cz+e8LTTz55JMceuihXHnllVv1WQqFQqHYucimEjQu+4g1Kz+mYe3nNLQtZ02kgYZ0Cw2ykzXuJOv91ga7TPohqM962Tca4oi1fkTcTbQD1qxPsXBlG0uyWZbQDrQD9r2dgwYNYsiQIey//wEMGTKEIUOGMHLkSPbcc8+tciZcoVBsH9TK3U6KZZqs+Hwec2e+yOIlH7CmdSmNmSaaPDEaKrOsDZe27xuB+k6dvukg/d39GNZ3NPuNPYkjTjqPyqpwT49QbCfiHc2cd9NoXgy38GvjcD5f2IepU5/mpz/9Kbfddptyw69QKBS7ENKyiLU3sn7Vp6xfu4j1LStY376axkgj6+NNNBqdNIk46z1p1gc3vAYmmIG+UUFtVCMY09Ajkky7SbxT0tYJjZ2QNgrta2tr6devX48hZ9D17t1bfdcoFDsRalvmbkhnayMzX3+S+fPfZFnzQtZm17PWF2dN2KQ9UGgXyMCQVsGAqI96rS979NuPMQefyhEnTqYqHC6b/LsbRibFZdfuxz8rlvDd2Ah8ieP5+93/4Pzzz+ehhx7C61XOdhQKhWJHJdHVSuvaJTQ3LmPNmkWsb15Jc+c6WmPNtGc6aZVR2vQkrb4sLX5JwrPhGLoFdTEIxyEUA28MXF1gRiARgWgE0iKMK1hNTU0t1dXVPYa6urq88da3b1/1/aFQ7IIo405Rwpol85n15hTmf/YWSzsXs1JvY0VVhqZQoU1lCga3CvrH/AzQ+zG8fhyHHPM1Djn6JILBYPmE34WRlsV1vz2KP+jv8bXIIA6ovYRfXns9xx57LE8//TRhZWwrFArFNsXMZoi0NNDRspqOtrU0Ni5nXeNymtobaIk1057uoNOK0SmSdLqzdPos2v2S5EaOnQkJ1UmoidkGWyAGvpQLr+HFYwXwucL4A30IVg+kqs8Qqh2jLectuDiEQiHlpEShUADKuFNsIS1rFvP2a48z95NpLO5czEpXO8vDWdqKbLn6DhjUqjMgXcOQmr054MBTOerk86gfOFB96Wwl/vT7CfzSeJnTO/ty9r43csn3r2DkyJG89NJL1NfXl1s8hUKh2GGRlkUi0kakZQ2drQ10tK2ls6uJlvZ1tHQ20hZrpSPVQWc2RpcVJyLSdOlZIh6TiFcS8W76Ls+qJIQTEEpAMKURzLgImF6CIkCFO0xloJZwVT+q6wbSe8AIeg/ck7peffIGmvIMrFAotgbKuFN8JdYt/YgZrz3C7M+m83l8GYsroqyoLpwDqE7A0CZBv1iQgb6hjNrrWA4/6Rvsd8BYPJ4e9p4oNsvf/+88roj/lxM6qvnpsf/gaxd9j6qqKl566SVGjx5dbvEUCoViq5JJRIm2NxJpayTS1URnRxMdHetp72yiM9ZKJNFJVypCNBslaiaIWyliIkNMyxJzGcRdFjG3bZxt7gqbQMbenRJMQSAJvhT4Mho+w4VP+ghoAQKeSioDNVSGelPXezC9B+zJwD32pe+AgdTV1VFZWamMNIVCUTaUcbcNSUS78AUq0PQveXv0TkqsfT2z33ySt2c/wydtn7LY3cbiGiN/kXsgA3ush/7tPga4hzBq1AkcecoFHDBmDD6fb9ODKwB46O+X8J3m+zm0K8Stp/+Hc7/5PRKJBM888wzHHHNMucVTKBS7GdKySCcixDtbiHY109m2nva29XR2NtMVaSUa6yCW7CSWjJLIxEhkEyTMJEmZJikzpESWlGaQ0k0SukXKJfP3v6a30Hd3KA2BNATT4E+DJwOeNHgyAo+h47FcePDi1nz4XSH83jDBYC2hqj5U1dZT228oNXV9CIfD9OrVi7q6Oqqrq9F3s+9whUKxc6OMu23IQd9zM7+fQVUKQikIZjQqsjoBw0XA8hIUfipcFYS8VVQGaghX9aG2tp66PoPpWz+c+mF7U1PXe5f4YjEyKRbOfpE333qCD1e/z6daIwtrMnmDryoJe6yDvp0BBvj3YJ/9J3L4+LPZb//91YHvjTDlgZ/xjVV3MDrq55/nPcfXv3MFy5cv55FHHuG8884rt3gKhWIHwDINUrFOktEOkvFOol2tdHU009XVRizaTjTWSSIRIZ6KkEjFSGbipLJJkkaStJkhZaVJywxpsqSEQUozSekmKd0i6ZIkPPaZsrh786tixQhpe3b0Z8GfAW8WfBnwGgKPoeE2dXymC4/lxiu8eIUPnx7A56nA760iEKwmGKylItybypp+VNX1pyJUSTAYLAlVVVVql4hCoditUMbdNuTXPz6alZ1LiZMiLlLEXQYxt0nMYxHzQacPjM3YbRVpe4tIhWMcBnLGofQRED4qXCEqvGEqg7WEw32o6zWIPv2G0n/IKOqHjqSyqmqH3R6STSX4ZNazvPXeFN5fM4sFehOf1xj596R3FIasg96REPWhkex70JkcdtxERo8erS5GdXjp3zdx9qe/YWjCw1MXvMolV17Le++9xx133MFVV11VbvEUit0eaVkYmRTpRIRUvIt0Mkoy3kU8ZodYtMM2ruJdJNNxUqk4iXSMdCZJKpMkbaRIG2nSZpq0lSZtZUjLLGmypDFIa6YddIu0LknrkpRLknJByr3lq1494TXAlwWfAZ6snfYaAl/WNsC8lo7HslfEvMKDT3jxaj68btsIC/hCBPxVBIPVVIRqqQz3oqq2H1V1/ajp1Z+KUIhgMEggENglJjEVCoViR2CHM+6EEOcCvwVGAQdLKbfIYtsRjbvNIS2LrrZGGpYvZH3DUpqbVtHa1kBnpJmuRDuRdBdRM0ZMJolrGeK6QdRjG4cRH0Q2s4PRZZJfNaxIC4IZnWDWRUB6qRB+gnoFlb4wVcE6aqr7UddrEH0HDGfA0FEMHDYKfyCw6QdsA5KRdj569ylmvD+VD9bPZYG3laXVVv4M36B2qF8LvZPVDO49loOO/TpHHHMCgwcP3mGN2G3NjGfuYtLsq+iXcvPiha/zy9/dxdSpU/nZz37Grbfequ4nUuw2mEaWTDJGJhUjm0qQTsZIJqIk4hES8QjJRJRkMkY6FSeZipFOJWwDKp0gnU2RySbt2EiTNlJkrAwZK0PaypCRWTLSIItBBpOMMMlqFllhkdEsMrosCpDWIeOClGvTTji2FCFtI8s2sOyVLo+RCwK3KfCYGm5Lw23puKULDy7cuPFoHjyaF4/Lh9flx+sJ4PdW4PWFCAYqCVRUE6yopqKyhlC4jsqaPlTV9KYiVInf78fv96sJNYVCodhJ2BGNu1GABdwDXL0rG3dfFTOboaulgXWrF9HYsJSmppW0tq6lPdJER6KdaKaLiBUnRoqYniHmNoh6JBGfpMsH5iZ0ft1yDMMkhNKCYFYnaLgI5reThqj0hQmXGIZ7MHDYPtQPG4XHu/XOzkVaGvjgrf8wY86zfNjxCR8HOllXaf9uukwY3gT9mnT6yv6M3OMYDj/lAg497AhCodBmRt51eO/Fe5jwzvepybh47ZuvctcDU/nb3/7G1772NR566CG1LUnxhcitNhnpJNl0glQqTjIeJZWMkUrESSUdwygdJ5NKkkknyeRWmtIJMtlUIRhpMkYaw0iTMTNkzAyGlSVjGRhWlqxjMBnSJCtMDEwMYWEI23AyhCSrWRiaJKuBoUuymiSrQ1aDrA4ZJ3yRbYFbitt0Vq6c4DbBbTjBBLcpcFkCl6XZaanhkjouS8MlXLhx4cKFW3Pj1jy4NA8elw+Py4vb5cPrCeDxBvD5Qvh8QXz+CvzBKgLBKoKhagKhaoJVNVSEwvgDgbyx5fP5dtsJLYVCoVBsnB3OuMs/XIg3UcbdNkNaFl0tDaxZsZB1qxezfv1K2toaaI8005VoI5KNEDMTxESSmG57HIt6JVGf3Ox2Us2CSmc7aShlG4YVhjtvGIbcISq9YaorelFT3Y9eve0Vw4FD92bAsFG43Js3RNYtmcusd55gxoKXmZNcyoJwIr+SWZGG4eugb7ufgf7h7Dv2VI455Xz2GT16l9768+HrD3PSGxcTMARvnPcC/5v2Mb/85S+ZMGECU6ZMIVCGldhdGWlZWKaBkUmRySRJJxOkkjEyqSSpZJxs2lkRSidJpxKkUwmymSSZXPt0kkw2RTabtoORIWs4sZnBMDMYZhbDMjAsg6y006Y0MaWJIQ0MLExMDCwsbIPIxDaIDGFhCYmhSUwnNjQwhcTUsPOOgWRo9mRPzmDa3HbxrYHLBI+ZM5AKwWWCywKXKYpiO+gyF9sGlIZmG1PouIQL3YldmtsOusc2qlwe3LoXt8uL2+PD4/bj8fjxem3DyusL4POH8PqC+CuqCFSECYSqCYTC+PwBfD4fXq8Xn8+Hx+NRq+EKhUKh2GHZqY07IcSlwKUAgwYNGrdq1artJN3ujbQsOpobWLP8U9atWUJT4wra2u0Vw65EO9FMhKgVJyZSxPUsMbdBzGsR8UKX31YgN4aQtlFYmbJXDCsyOkHDTVB6qBABQu4QVd4w4Zxh2Gsg/ev3pP+gEcTaV/Pe+//j3WVv8TFrWVibzT+rj3N+r1+8mqF1+3PIMV/nmJNOp2/fvtvnTdtOzH97CuOfPw8NwRtnTOW9T5u57LLLOOKII3juuee2zmXnUmKZBhnHaMmkU6RTcTKpBKlkgkw6QSblGC/pJNlsimzaNmIyGTs2HGPGMDJ2nE3bhoyRtWMzi+ms7BimgWkZmNI2cizLzBs4pjQxsQqxEySWY/BITGFhIrGEkxa5NE5sGzv5eIM0jjFUiI3tZAB1R0jHALLskE+b9mq7y8rFAt0CPRfLgnGkWwINzU5LDReanUezjSN0dKGjCxe60HFpLttw0myjSdfduHUPLpenELu9uFwePG4/Xq8fj8c2mDzeIF5/EH+wMh8CFWECFZX4AkE8Hg8ejwe3271LT7woFAqFQrG9KItxJ4R4HehJq75WSvmM0+ZN1MrdLoe0LNqa1rBqyQIaG5bQvH4lbe1r6Yg005XsIJrpImYl8oZhPGcY+qDLZ59h2RTFhmEwq6MhyOiSmNukPSBpL1q86tcJA5uhPlnNHr0O4IADJ7LniFHoGhiOIWJkM2RzsZGx42wa08hiOMaJYWQxzSymkSVrOmnTKBgludgJljQxLTsUGyqWtLCc2MRO27HlrMtIcikzn7YNleI44TZZ0NfAErBXs4Y7C4a0sHRA1+x2AizHaLEcQ8YStiFjaYXY0ArtckbOprbzbm+KDZ2ccaM5aduooZuRY6c1aRs8Wj7vGD5SoGEbPRoCTWroOMYQOjoamigYQrrQ0TQtbwjpWiF26W40zYVbc+FyeexVJJcHt8s2hNwePx6PD6/Xj9vjx+vx4/H58fqCeHwBfP4KfIEQXr+dDlRU4QsEcbndyhhSKBQKhULRI5sy7r6Cj61NI6Ucv63G3tGwTFuBz6SSZDMpspm0HbJpzGyGrGM8mEaWbMY2GrLZjBOn7W1fWXuLlmkYJYaEaRqYprOyYWRtQ8EsMiZMZ5XDMrFyeWnZBoZjVEjLcgwLE8sqGBcFQ0Pacd7IkFjSMTNkwdiwkEhpGxjSMT7slBOL7mnbqJACu9xZSZFu2/CQRQaI1xDUxSGcsNuYeukqSq7MFPaWspYgNIUkljCQ2GMA0O14SmPYDrPpAKbDuumw7iv+wAX2X85X/OvRcgaLY5xostRY0Zy0JovTIt92cBusrIWFfSz2bBEEUxoybaFJC4/uto0UCaLEkLENG80xZjSE3S73nyjEurCNGzvtsvOaG5fmQtddJWmX7sblsrfIuVy2gZNf7XF7C7HHh8fjw+324vH68HgDeLx+vD4/Hp+9EuT2BfD5g/gCFXi8PnRdV1vkFAqFQqFQKLaAbWbc7S4c+D0Xcwaa5Xm45oStPWyRUZEzJLSivJClRkeuLlcucqslTpnm5LWSOoHmrKYISd7wEJA3QESxISIFwkkLBLqTy+cdo8SSEkNmMbAwMGxnDZgkXAZdfpMunyTihbgHpPPeCWfxenPe7nxZ+6yfP5tzHa7ZwdTxWTp+6cEvfAQ0P0FPBZX+MKFgLdXVfairHUBd70H0HzicPgNHEAiF0V2ur+wsYdWn73L8v45lbdjgxcP/hqjen0mTJlFZWclrr73GyJEjv9L4CoVCoVAoFIqdh3J5yzwL+CvQC+gEPpJSnry5fjvitsxfXHEE62MNJSsemtDRhHBiJ6/lynU0TbeNET23GuJCaPY2L02z8/bKiBPrLjTNhe6yV0jsMje6y45dLje6y23X5dIuD26P115V8XjtVRW3F5fbg8fjQ3O58Hj9uFxuO3Z78Pj89rN2g61gZjbDp+8/x+vTHmX22vf5xNXMZ3Vm3hNfXQz6dUBN0kOlaRtsllsSJ0VCZEnpBkmXScItSbglcS/EPFt+RsufhWDavuA3kBX4sxp+50Jfn3Tjw4NP8+DX/fjdAQKeIAFfJaFgmFAwTGVVHVVVvaip7UcmHeHiN37IOn+WZw+4ldrhJ3LyyScjpWTatGmMHj16272RCoVCoVAoFIrtyg7rUOWLsiMad4pdh0RXK7PeeJQ3Zk7ho45P+TTUxaqw/fehWTCkDerb3dSbvRjWZz8OPuJsjp1wPqHKSsDentvZ1kTjmqU0rV1Oe8ta2tsa6Yo0E421E09FiGdiJM04STNFkjQpLUtSM0i5TJJui4RbknJDwgMJ95dw6CFtwzGUtu/I8mXBb9qri17LDh50PLjwCA9ezY1X8+J1+fC5fPg9AfzeIH5vBQF/iGAgRDAYJhCopKKyhopQNaGqWkJVtfiCVfiCYVweH0Jtm1QoFAqFokekZSGlhXSO8VimkQ/SOZtvWaZ9HMfI2kd0TCc2MvbxGsN2SGZaJpbTzpJW0REeA8ssHN2xj+qYSMvENE37uI5Z9KyivLQsDMuwn+Mc85FS5o/9SGlhWSaGZWKYBpaVLfgUsAzHx0DuWFDhGJDhHPmRzlEg04lxjvaYRUeAJNJxlub4GOh+9Mc53mPHFJXbx3zsIzp2nqLjQJYAWdIml3eOB+XThXLLaSsFjOqo4OWHomX6zdk4yrhTKL4krWsW8caL9/PWghf5LLWKpaEEa8KFv5nqBAxr0ahPVjEsNJwD9h3PiWdeQr+BQ7/ysy3LorOthZbGVbQ1N9DV3kRH23qikTZisXZi8U4SqSiJdJS0kSRmRXmjbyOtATi4wU0gpRG30mTdYHoEaTdkXJKMC9LdwldBs5yLl3N3hFm5e8HA7bi3d1saLmnfD+aWGm7HY2M+Fi7cwvbY6HFc3Ls1Nx7HW6PHZV/O7HF7HRf3zrk9t7fkDJ/X63hy9Prx+gL4/UHb0Ylz5s/l9uLy+Aqxx4fu8qDpLmWgKhS7IHml2rnWREon7pa3FWsjf87dMi3HcZaZV8ANI4vlKNmWVdTPzCnJubyZH9swnGdYRlEfW1G2pGX3y8kkJWaRgm3HBkhZyBedo8eSBaXaUcLtc/fFCryJaVlYMqd4W8jic/fIvCIunfP2xWfvc6q2febe2lDZ7kkBx1Gk82f0bWUZKOpTOHcPFLUD6K5wyxLFO5fvSSnPKf04ZVb3+p76bKqshzg3dq6M4jbF9bk6p0yxczKiWbDo71a5xdgAZdxtQ86+sI413i7cjgLrlrqjvNoX23qci209mgeP7rWDy4vPHcDr8ePzBvD5KvD7KggEKvEHKqkIhQlUhPH5g/gDIXyBEMFQFcFQGK+/An0L7ohTbDs6m1bx9muPMmvey3zW8TnLvB0sqTVJuu163YJBHVDf5aFe1jKsZiQHjD6Oo0/5Jr3rh21z2Sb8cTQfhmI8OvDHjDvuRxx77LGkUineeOMN9t9//3xb0zRJJpPEohEi7S10tjcR6Wwl1tlGPNZJLNpBMtllX2adidsXVxtJ58LqFBkrTdbKkpWZ/CXVWWFiCOfKAs25i00rBDN375pur0rm0rmQ0Td9jca2xNWTV05ZyOvO+dD8WVKc86K586R5hzXF+aLyXBry50l7OmMqIH+WNHeqVJMghJbvD8L5P/cfzvlNJ9293jnbqTkahshpGsJ+Dfmzn046X188XlF7RGGcXIqcDMXj5ZE9pGwlTfRQXpKTOKqgUyrtnHAUQJyy3HhIW2nMDSELiaJyWVDEZEkrO517piwooUiJJWVRX1uRJafQyoJiywbKb04htccuVnTJzTTnXo8oak/pjHM+pkjJzaeL+uYVzUKe4j4bUUSLn0FJ2YZK7SYV3CKltsf0Ruq3dPye0vkxeniOQrFZpPMplouxP+e7p/NxUVshe873GG+mTJOlz9OcPwKtW/vc90+hncj30/LlOZ8G9ndOrqwwVqFew7Zuc989uTGF41EaQBeF7ymE7ahNiFyfgkM2gWYfRZICTdMRTltNs48l5Y4s6ZqOprnQhOZ4ntbyR5c0zW5vH0ty2ut2e13T0XTdPtqk6QjhjK077fN5+1iTEJp9nMnlystQOPLktHO5nbxWdLzJjdB0KqvrGDR8xzveooy7bcjki3qxwttBRpdkdenE9mpIRi+sjGzNL5ncPVhu5+6rfDp/F1Zh1SR/95UlcCHQrdyFwFqRsxLN8ZgoCp4Si/5QdaHZ7uCFlv+jse/IctzCa0Wx0O3zgHrBVXzuj8ilu51zhfYfu9DsP26hOWcUdZftHMVZRdGF/ceaSwtddz4MNOeMovMH7pxV1HL1zh+srusI549f0zRcLk++r6bbHwgIkVdUS97jnqbZcgptD+1NI8PCj97kw4/fYHHbZzSIDtZWpFkTLt1a2ScKA7tcDMhWMjg4kFGDx7LfvkcxYMhoNL10CU1KiRAaUsp8KKp0ZlhlfuuEtCwsyyLW1cKPnrmYD6rjXGcczaEHfItf/uIXpDNpbr7pJoYMHWL3t3JbJWRhdltKe4uIdJRZZ1wpbfXTcp6Bs4VCOjPQkBvPnt0tjO+omNIqqpf5mWl7ltyODcOe/c5m7asnskaabDZlX0VhpvNXUBhmFlNmMZ1ZbQvHW2z+egnLvvJb2ls8LOx773Kzz92vlZBaLl/q3dXSCt5ciz275pXdIkW6tLw0natjM+1KFeyey6yiX71iBbh7WUk+lxYblhWXb1C3qyrGW/KVt6u+9h2FnhTponx3Rbmn+ly51q2+OC+6j1GsSBfVF/frrlxvVBnPKc9FZbn+OaW6WDkvaZ9XzEWJLKUKe2Gyh7xDMexvaQmIghOynDqenxQSWmGySBQmijRRNGXkfJ+LvJ8ALd83r2ST8xdgK8eCnIJtf78LR+EWQjh5ge4o6XmlW9cLynbu+zevrNt9NK3wnZ1Xvp1YaHpeKbd1Ax2Xy223c+UUfVsRzyn3usuNprtwuR2dw23rIa6cnwK3J6+86y43utvt6ATqD1+x86CMuzJjmSbxaCdd7S1Eu9qIRdqJRzqIRdtJxCMkEhFSySjJVIxUKk46kyCdTWKYWbJmJn/Jc9bK2pc8SwPDuTfNwMS0VVnnImcLQ1j2CokTm0I61wpI53JmO7aK7zcrSm9w55kg72hEoVBsWzRrQ2VS66ZgakXKZE/13Wd6oXg2l7yS3KMi201pza2K9aTkSgrKbL6NyD1TbKjw0v15okiJLyi6ub45xTX/3jiWqJaXr7ByWNw2N1FVsrLZLa05Ka2oT37Vsng2GgECNDSnvDBbjcgpzMJWXIUzZSaEXe4o0OQUbq0nxVogNMf/rzPxpRXnNS0/sSbyM9uOkuwo4sJx0JVTogsTZ4XZ8vykWU4Jd7mLYg2X7gLNnkEXWk5JtxVrUTSDbs9m27Pb+UkzZxZd0/X8JJrL7bHbuz2286/czLgzYadQKBSKL09Z7rlTFNB0nVC4llC4ttyibDFSSmdFxQ5GNksmnSKTTpJJp8imk2QydpzNpMmkUxhZ+26/bCZt39uXTdurLln7InDTOQhsr/bkzheYzkpRbgXJzK8GSef+PWlZ+Xos075fz7LAORuQXxXCWXWisBKV20ZlOatSlnRWmQCx0YmNjU94bHoqpOfaDUqd1x1LR+i0IsRcaWLuLFGfRZcfOoIbnoOrSkE4CRUZjVDWRdD0UImPCuEnQACv7kUIvaC+Cvs57+kLeb9PigObvRycGMmizz7HNE322Wc0FRUV+ba2Ugo4cYmS66xw5tVozZlDFo7C7CixgHMfXUGGnGIrNEeRzrUVzgy00z7XVzgrqSIvh6NQa1r+WZQozSCcfkLklGpH2dUKyritDNv1utCLVm9FYauIM8NsK7iuvCItNMezre70y+XzM8taYQY5pwS7XCBEYeuHXqjL1eee6XJmmdXMsUKhUCgUiq+KMu4UPSKEwOWytzEUqCqbPLsLUkrWNjQw973XWDjvDVat/YTmRAPtrigdwSztIYsltRkyrgwQy/fzGNAvJuib8tLXqqC3u4Z+ob58t+48Rqx9h0d6L6eiYxV/vutVzjjvIj5etprXXnuNcePGle/FKhQKhUKhUCi2KmpbpkKxkyClpK2tjeXLlrLo45ks/3w269cvoj3eSER2EvWmiYYk7ZXQWgEpd0+DQHUS6qIQikNfd5je/hpqfdX0ruxD7+r+1IX7UVMzgJq6gVT3GkR13yF4/BXb/fUqFAqFQqFQKDZEbctUKHYBhBDU1dVRV1fHwYcc2mObeDzOunXraFizhlVLP6Vh2XxampbR2bWWZn0Nb+6VJOEGXwrSblgQ7CTq76TLB9IC2pywrHTcijSE04KqjE6F5aJCeqgQXir1IJXuIFW+KsKBMJWBaqqCNYSCNYRCtYQq6whW1OAPhvFXhAlU1uKrCG/gPEahUCgUCsVXp/j6j+J4U3Wladlz23xa5vMl7Uqcs5XmgY23yY8ti9oV18kNnm23KzhrKz7Kk3feZpm2d+JuryFXbzn398mcAzhkybNyx3kGDNiLIyd9b3v/GL8SauVOodiNWPzhK5zx+OksCWX4rXEi//z3EtauXcdVV/6I3lU+2tavoLNtLbF4C6l0F2kZJyNSZPQsaY9Jxg8ZL6Q9kPJC3Atxj33p+hfBa4DfAL8h8BkCn6U5wYVP6vhw4xN28GhO0D14XR48ugef24fP7cPr9jl34NnB7fLicfvwuJ277zx+PB4/brfX9uLqeFnLpfOxy1Oa7h67PflYGaYKYJMK02bLnHLYUOHZeDu5ZX2/aFmJklb0DCk3bFckS16Zskwk5PP2hcxFnnFzZ6OLyoqVKnC88EqzSEanXbEssnB2uljxko7nXkrOXlv5s9e5c9c4V1l0VxqtvBxFaWfM4vZ0y+eu3bCcZ8vi9yqvJObaFZWxYX2+Xe7nnG/jjJmrLWqXu4ajMAb5u+Vw8iXtcv/KQrr4mo7cs9lYXT5VVC8BQY9t7binOqdMFLcsbUtRm9IRc56De+jXzRtw8VUh3fPdPQSXtM15Jy4qp2SMori4fdHzS2TvqU+3sXocu3i8nrwpF8X5/urI9jZh/PIArz0UL7cYG6C8ZSoUijyRlgYu+MM4ng83c3HXcD59089Hn3zOE088wVlnnbXRflJKYrEYnZ2ddHR00NnZmQ8dba1EO9aT6GohEW0jleggnYmQycTImCn7KgOZwSSLgYGhmVi6xHKD5QLTDYYLDDdk3dgXrbsh6wJDK70Lr1z34BWj5+++K/VCuSV3IRW7Sd94O1FSz8b6O/1yCHr+gu/pU76kneyhrKRfT6kextrIOJsftXSsDRSX/JjdlbUeFJyS9hu2LR7vS5UpBUqxnenpfjTYxOdOUcwm2nYvh418ZnVrSw9t6KFtT+OxBeP12MYxJDdVX+xZd+PPL73oaEN5RaF97rlFfTb+rG5tEKUyFI3bY9v8+9DtbtEN2nSPC+nuJRu9rzSXF/lXWdS6qKXooV+xc7WckzMExXeg5vs4bbs/p1CeG1MruSO1uE2+bc6RW24MTcs/x64TILSS5/Xk7K04XXDEVuTMLde/yJnc0D325euX/oIdDWXcKRSKEsxshht+dxx/0N9jv04vAz4YwquzlnL33Xdz6aWXbhcZLMsik8mQTqdJpVKkUqktSqeSSZLxCOlkzPbWmo5jZtOY2RSmkcYw0phGGsvMYph2bFm2p1bLMpxtG06QtqdW8tdNF66dliJ3JbV0Zoqd2Vjh3Pkn7HIonbEuGAbd5pxFXk/IIwvfmSV1xeVb1K4bYks/1nto193m29Kx8u1EUb6b98+ecqKHBsXKUuH5pVcp5O+d7ElhK1GkuvUteW53danbc0Vpr02pU3kFJvfcYiWoRCHK/ZtTlArj5ZSZknbdLprfuLJEUX/bM21+ZFEkb7Hik3/DS5WwnFw5xajH+u7jiOK0ln++KPZq261dsfK1MUVL0zQkdPOOW2iXlyV3h1vOS67TBs2RpUjJsxXC3DUTdtqu04v6Oq/DuU4i78VXFK6oKOS1kjGE4503d7cbouDRNz+eVkjnn6sXxtCKPPqWvM78e9Vz2Fz91hhjaz9DoVB8cdSZO4VCUYLu9vD7m97l8Md+y8ULbmLpMYs4t3oAl112GcuXL+cPf/iDM7u17dA0DZ/Ph8/no6qqaps+a2elsDWu5/jL1m2sTXcFTNO0zSpoCoXiy2GZRVtbi88Nmfa21ZL6DfLOOaHctT+WUdg264xlFZ8vMk17+sq0rwPKbX8t2V6b2/5asqW4eGutJLf91ZIWFG2zzaWLzzRJp4295Zai7cGms2206Fm5ra9FY+dk4f+3d+dBcpzlHce/T8/Ozq6kFcKyZEvIso0tQIIYg8EYcASYBAziDiG4DOZwoMohCVRBCEcqqaSKqrg4HbABh5CAgzEYQlCccDjgsl0GHF8gidu2zCHQgWzd1rHTT/7ot3ve7pnZXUm7mp3R71MeT7/9Hv1072v329Nvz0BYF0/3DR/GpWmrrSimYuotHp7lqky7jafM5m2F5WJabtg2eDGFN0u2pugWaVpTYuP2W9NkW1NdKZ7voj0vmgKcJdMsDVg0ZTf7J2o/1C3nh5x82nXYZmnyq1c+hoynCEdtVdNurRhaedlS1kx5Om51qSjbsa3Wuo5th/zWaSyaPGtx+VZedU338u35q+pncuU/r6ef6OLuKN3y3//O3t0PUR8eoT7coD48wnBjlOHGKPXGCI3GHIZH5tAYnUNjZA6N0bkMN0Y0MJJZ4YUX/S13P/kFXPLJ53PdUzbxrMWj/OtVl7Px3p/x8Y9fxejoaDGgyE7a5cFHPsDIBgwUd8TiZ2eoPGOTpk3SZloqD0Qn/WjQEg1CqvnFCTdtnfTzgULWdhp+Q9GxYlvlZ47ygYSRD4jS4oTfqWwxGMgHRqThXJ62P98Tl4+fxUm92K+8bQ/P7JQGSHncXZ6BipeLU1/0UPiU8+OTej64iU7Q+TM7pQFLXj5qqzSwyP+elbZLQ4G2NG316dRWMXCpDCsqg4S2wUAUC9GWqyf/4tjkd2XzQYdRtF2uHdqI8qvbzuqGmmEwYdW44lisnI5TEw9KWnG39juqbZTLW6V+vg9WOUJt9Sr7XNytLpd3yw9bNe7OdeJ9cGgdo3j7nepHcXTK6xTXVPM7Te+dqOyk+Tr1z16tG+KZWfAIwGwWTxcu0lCajtopv1PZyfLD/3Imze+43S51S+XbYmnNqjhp17apHZBZRNMyj9I5bxri7mXNw6pjnj2vMxRexbM7aXh+h/J/NEk4QydR5yye88nLY0W6yI/aydbF030O31R6Sre2O57Qptj1qifXVlUv1lVP/G31qnU7nLy7tVltv1O96rYma2OyMt32eVqWNbiQATbRs0RTHWh0G3R0a4sJ6k84KLHOdUvl22KpTE+lwz6VBi1WTsdxt6WtY5vk7XRc36VetK68Hoj3IW7dy+lSXKXj0Dm/nBet8Wi9RdvPn/OJ46jkF3+nSsuluPN/V6bQVmPJpqVmf8NsMZ4aW04XU1iLuEo5pWm6FGXzuFttlabwWrRfeenS9OEkaruyzbxcEo5JkrSegKpM0Y2n1WJGkm8nnjJcmpobxVJtI0y3zTadPStVzCopTaHN6yXt+RiW5GXCNN38ma18ujD59NqkOBZJaSpxUprJQDwlN2w33x7FrIdWbMUU3bjtpEaWnZTap8jPpxJndfO24ynBZglJrRbFlhRTgwn7V0z9haJsOV1rxR3SFrZTnh6cFFOHpfc0LXMGXfa4y9iyZSPjzUOMp4cYbx4iTZuMp+M085c3w3v2jWDN/EV216BJSpMm+WfT0ZM+AMX61pcFZOvTcKbLy2PZrfuijrU+Ma0uT/mZnGl0NNcU1QFI8e/KgCIra5V0HEPraqdUJl/oMOjI/10+Xbe2RTFAq9aoDBpK26ue/NtTpXrR4KJ9GEN5bXyyLrU60SAiy9rHw3xn4TY2zXeWPwin/wxOHjuZeXPnRvWj9izefmsAURqUlAYW0aCmWjfsaDygyOolleeHygMUCCdopzQ4yOtatVy87W75efv5yTkqm5jh0DoZWlJuKx7oJAkJoXw4IZfaKg1Calnb+ZRIiwYWSVKsy1bVWoOgJB7QROniGaVaVLfToCOk87phIFEMzIpBSRRH6eTfet6olGcJSS0MNGgNFIq/UTToiNtqG1hUBiFtg448rhmeRiwiItIPdHF3lP707R/tdQgi06p56CCfuOI1/M3+67ntqfCM2zfz+LGLuPwjn2RsbKzX4YmIiIhIF/qoU0RKavVh3vKOL/Kzy37E6/Y9hlufDtcu+jyv+qPFfOOGr/Q6PBERERHpQhd3ItLRouUr+dQHfso9F3yB8/Y8kq8/cz+vvfkVXPwny/j5htn17KuIiIiI6OJORCbxxNWv4usfe5Bvn3UFK3aOcO2qTZxz7VO5+NJl/PiOb/Y6PBEREREJdHEnIlPynJf/Jbdd/TA3rPgg5/5ylC8s28Sq/3k+v3/ZXD73iT9n/54dvQ5RRERE5Limn0IQkSPy5Wuu5LPXv4e7ztjFpgUwdgBe/PCpXHTOJTz3JW9jdP4JvQ5RREREZOBM9FMIurgTkSPm7nzjG1/j6ve/hW3zHmDDStgxCiOH4Fl7F/K8k57J81e/kVXnvVhfVS8iIiIyDXRxJyIz7u677+ajH/kgP7r9OkYenbLpTLjvxCzv5L0J5x06iactPIunPf55PGX1qxlbuLS3AYuIiIj0IV3cicgxs337dq6//nquueYaNv7wOzz6DBhaUeeXS5psXJAC2Q/Ln7G7zqp0ISvnnsrKJb/HyhXP4LTHnMui5St1l09ERESkC13ciUhPbNy4kbVr17J27Vpuvvlm5g03ecwpCUseO4/9i5xfje3n3vmHOFRr1WmMw/J9dZY353HK0EJOmbuEk8ZO5sRHLOHEE5Zx4qJTWbTkTBYuPZPG3Pm92zkRERGRHtDFnYj03I4dO7jtttu45ZZbuPXWW7njjjsYHx+nlsCq5fN47IoTmL+ozviccXbU97Glvo9fDz/Mb+amuHVuszEOY4eMsfEaY80hxrzOmDUYsxHm1UZpJHUayTCN2jCNWoPGUP4aoVEfoVEfpVEfpT7UIEkSarUhakk9vNeo1eoktaGQHqJWC3lDdZIo3ywL0Kx1x7G8HPKT9vw8r1v9cp3ygcj//+1pGq1LK+8evZfLF3k4FOU613OPy5TrlepnBVp5lTpxW6WypXqVtuP6cduVfe7Uplf2q1O9trY71IvPlW3HKMTcNQ8Ph6fb8WOCYxsds27br8ZKp7i6lOn2dyfeXjW2btsv1y2Oece8Lunq9uO/ySRl2+tGx/8w4yjWeHXrh9NG62/Qtg9FWbrUjbbXtY3O8bRi71Kn0z5V2py0zAT5pTJWjWMK2520ziTbjfffKm1afiy7bL9t3UTbrW69e7tFuuO+daljU9l+t+112O4E8U2tTh6Xt45tW92ptjFB7JPUKcVsXfb7sNqYuMzLdy3juit+xWwz0cXd0LEORkSOTwsWLGDNmjWsWbMGgL1793LXXXexfv161q1bx7p169jw3Q3s2bOnqGNmnPKopZy+9JGcvHCUBY8YYmQUbPgQ40MHOWgH2W8H2c9B9tlB9tghfsc+Ntou9tLkACkHzDlgcCABUuBgeImIVFU/SArpMIbM3q1VbLJ03GSpTJ627ukJwinX6ZCO11XTE9WZSlmfIH+yNnwKbU6lTqdteHVdtWyXNonjnCCmbtsvtVVt7zDS1XbjfnM4251yrBMcu2qb3WLN25yozFT293DrxNvt1ka3fema7lKmMX+0Q8HZTRd3ItITc+fOZfXq1axevbpYl6Ypmzdv5v777y9eDzzwAJs3b+Ynv9nMlnt+zdatW0mjO1VVQ0NDzJ8/n7GxMU4YGWGkeDWYMzLMnOEacxo1GvWE4bpRsyaJOUli1BLDwrIljhmVl4M5hpOS4mmKk2Jmxafn5WVan8SX7rrFnydaWHLyuxSehvsNnkZ3ubK7P+5pKNvaTuluVBp9Dur59i27i+KQtm4VkOYfYbsXeamnWTLN7hZ5GtLuuKekqZN6iNFTvEinpE5WP221kRZlsndPnWa1XtRWM2qr7XDFycpAJdqt1mClWq9SJl5XbbtbvWpMXkmTt22GYeGd8rsZ7llfMSyLx6wcOxBqFHmhIJUtFe2FRFtesd7zt8rlRvFWXd/evlnnMq3tlu805/vZMbZwV9qK/wai4xDVdSCp1HWy41g9nlTbCO23Do9hlrS1H79X76pP9X2myqr96N36PH6133ftL13af1/+1pOLOzN7P/Biss/P7wPe4O47ehGLiMweSZKwdOlSli5dyvnnn9+xTLPZZPv27WzZsoWdO3cWr127dpWWd+/ezf79+0uv7Q/tYlNl3fj4OM1ms/Q+Pj5+jPd8+pkZSZIU7/krTleXa7Vax1c2ZbVzXtfXEdQ5ku1MVmdoaIihoSHq9XrpfSrr8uMy1ZeIiEiv9erO3Y3Au9193MwuB94N/HWPYhGRPlKr1Vi8eDGLFy+e0e2kadp20Ze/p2n7s0TTsdzpomuyC7JuyyIiInL86cnFnbt/M0p+D3hlL+IQEekmv1Cq1+u9DkVERERkSmbDj0m9Efhat0wze7OZ3Wlmd27btu0YhiUiIiIiItI/ZuzOnZn9L3Byh6z3uvtXQ5n3AuPA57q14+5XA1dD9lMIMxCqiIiIiIhI35uxizt3/4OJ8s3s9cCLgOd6P/3YnoiIiIiIyCzUq2/LvBB4J/Asd9/XixhEREREREQGSa+eufsYMAbcaGbfN7NP9CgOERERERGRgWD9NCPSzLYBv+h1HB2cCPyu10HIwFL/kpmmPiYzSf1LZpr6mMyk2di/TnX3RZ0y+uribrYyszvd/Sm9jkMGk/qXzDT1MZlJ6l8y09THZCb1W/+aDT+FICIiIiIiIkdJF3ciIiIiIiIDQBd30+PqXgcgA039S2aa+pjMJPUvmWnqYzKT+qp/6Zk7ERERERGRAaA7dyIiIiIiIgNAF3dHwcwuNLOfmtm9ZvauXscj/cnMPm1mW81sQ7TuBDO70cx+Ht4fGdabmf1T6HPrzOzJvYtc+oGZnWJmN5nZj8zsh2b21rBefUymhZmNmNn/mdkPQh/7+7D+dDO7PfSlL5jZcFjfCOl7Q/5pPd0B6QtmVjOze8zshpBW/5JpY2YPmNn68Pvbd4Z1fXme1MXdETKzGnAl8AJgFXCRma3qbVTSp/4NuLCy7l3At9x9BfCtkIasv60IrzcDHz9GMUr/Ggfe7u6rgPOAt4T/V6mPyXQ5AFzg7k8EzgYuNLPzgMuBD7v7mcBDwKWh/KXAQ2H9h0M5kcm8FfhxlFb/kun2HHc/O/rZg748T+ri7sidC9zr7ve7+0HgOuClPY5J+pC73wI8WFn9UuAzYfkzwMui9Z/1zPeABWa25JgEKn3J3X/r7neH5d1kg6NHoT4m0yT0lT0hWQ8vBy4AvhTWV/tY3ve+BDzXzOzYRCv9yMyWAWuAT4W0of4lM68vz5O6uDtyjwJ+FaV/HdaJTIeT3P23YXkzcFJYVr+TIxamJz0JuB31MZlGYcrc94GtwI3AfcAOdx8PReJ+VPSxkL8TWHhMA5Z+8xHgnUAa0gtR/5Lp5cA3zewuM3tzWNeX58mhXgcgIhNzdzczfa2tHBUzmwd8GXibu++KP8hWH5Oj5e5N4GwzWwB8BXhcbyOSQWFmLwK2uvtdZvbsHocjg+t8d99kZouBG83sJ3FmP50ndefuyG0CTonSy8I6kemwJb/FH963hvXqd3LYzKxOdmH3OXf/j7BafUymnbvvAG4Cnk42VSn/EDnuR0UfC/mPALYf20iljzwTeImZPUD2CMwFwBWof8k0cvdN4X0r2QdU59Kn50ld3B25O4AV4duahoFXA2t7HJMMjrXA68Ly64CvRusvCd/UdB6wM5oyINImPGvyL8CP3f1DUZb6mEwLM1sU7thhZqPAH5I923kT8MpQrNrH8r73SuDbrh/dlS7c/d3uvszdTyMba33b3S9G/UumiZnNNbOxfBl4HrCBPj1P6kfMj4KZvZBsHngN+LS7v6+3EUk/MrPPA88GTgS2AH8H/CfwRWA58AvgVe7+YBiof4zs2zX3AW9w9zt7ELb0CTM7H7gVWE/reZX3kD13pz4mR83MziL7soEa2YfGX3T3fzCzR5PdaTkBuAd4jbsfMLMR4Bqy5z8fBF7t7vf3JnrpJ2Fa5jvc/UXqXzJdQl/6SkgOAde6+/vMbCF9eJ7UxZ2IiIiIiMgA0LRMERERERGRAaCLOxERERERkQGgizsREREREZEBoIs7ERERERGRAaCLOxERERERkQGgizsRETmumdkCM/uzsLzUzL7U65hERESOhH4KQUREjmtmdhpwg7s/odexiIiIHI2hXgcgIiLSY/8InGFm3wd+Dqx09yeY2euBlwFzgRXAB4Bh4LXAAeCF4QdtzwCuBBaR/aDtm9z9J8d6J0RERDQtU0REjnfvAu5z97OBv6rkPQF4BfBU4H3APnd/EvBd4JJQ5mrgL9z9HOAdwFXHImgREZEq3bkTERHp7iZ33w3sNrOdwH+F9euBs8xsHvAM4Hozy+s0jn2YIiIiurgTERGZyIFoOY3SKdk5NAF2hLt+IiIiPaVpmSIicrzbDYwdSUV33wVsNLM/BrDME6czOBERkanSxZ2IiBzX3H07cJuZbQDefwRNXAxcamY/AH4IvHQ64xMREZkq/RSCiIiIiIjIANCdOxERERERkQGgizsREREREZEBoIs7ERERERGRAaCLOxERERERkQGgizsREREREZEBoIs7ERERERGRAaCLOxERERERkQGgizsREREREZEB8P+2AhPeW7T5hgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 1080x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(15,3))\n",
    "ax = plt.subplot(111)\n",
    "line = ax.plot(sol1[:,:10,0].detach(), c='black')\n",
    "#line.set_label('torchdyn')\n",
    "line = ax.plot(sol2[:,:10,0].detach(), c='red')\n",
    "#line.set_label('torchdiffeq')\n",
    "line = ax.plot(true_sol[:,:10,0].detach(), c='green')\n",
    "ax.set_ylabel('error')\n",
    "ax.set_xlabel('time')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7ff3e4c4cb80>"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8,3))\n",
    "ax = plt.subplot(111)\n",
    "line, _ = ax.plot((sol1-true_sol).detach().abs().mean(1), c='black')\n",
    "line.set_label('torchdyn')\n",
    "line, _ = ax.plot((sol2-true_sol).detach().abs().mean(1), c='red')\n",
    "line.set_label('torchdiffeq')\n",
    "ax.set_ylabel('error')\n",
    "ax.set_xlabel('time')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Using `ODEProblem`"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 653,
   "metadata": {},
   "outputs": [],
   "source": [
    "from torchdyn.core import ODEProblem\n",
    "\n",
    "f = VanDerPol(0.1)\n",
    "t_span = torch.linspace(0, 3, 300)\n",
    "x = torch.randn(1024, 2, requires_grad=True)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Backsolve Adjoint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 654,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your vector field does not have `nn.Parameters` to optimize.\n",
      "0.17957139015197754\n",
      "0.017122507095336914\n"
     ]
    }
   ],
   "source": [
    "prob = ODEProblem(f, sensitivity='adjoint', solver='dopri5', atol=1e-3, rtol=1e-3, atol_adjoint=1e-3, rtol_adjoint=1e-3)\n",
    "t0 = time.time()\n",
    "t_eval, sol_torchdyn = prob.odeint(x, t_span)\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "sol_torchdiffeq = torchdiffeq.odeint_adjoint(f, x, t_span, method='dopri5', atol=1e-3, rtol=1e-3)\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "true_sol = torchdiffeq.odeint_adjoint(f, x, t_span, method='dopri5', atol=1e-9, rtol=1e-9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 655,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.6682348251342773\n",
      "0.9045190811157227\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "grad1 = torch.autograd.grad(sol_torchdyn[-1].sum(), x)[0]\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "grad2 = torch.autograd.grad(sol_torchdiffeq[-1].sum(), x)[0]\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "grad_true = torch.autograd.grad(true_sol[-1].sum(), x)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 656,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fea3256d730>"
      ]
     },
     "execution_count": 656,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8,3))\n",
    "ax = plt.subplot(111)\n",
    "line, _ = ax.plot((sol_torchdyn-true_sol).detach().abs().mean(1), c='black')\n",
    "line.set_label('torchdyn')\n",
    "line, _ = ax.plot((sol_torchdiffeq-true_sol).detach().abs().mean(1), c='red')\n",
    "line.set_label('torchdiffeq')\n",
    "ax.set_ylabel('error')\n",
    "ax.set_xlabel('time')\n",
    "plt.legend()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 657,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(0.0, 0.11922031044960021)"
      ]
     },
     "execution_count": 657,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8,3))\n",
    "ax = plt.subplot(111)\n",
    "ax.plot((grad1-grad_true).abs()[:,0], c='black')\n",
    "ax.plot((grad2-grad_true).abs()[:,0], c='red', alpha=0.4)\n",
    "ax.set_ylabel('gradient error')\n",
    "ax.set_xlabel('samples')\n",
    "plt.legend(['torchdyn', 'torchdiffeq'])\n",
    "plt.ylim(0)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Interpolated Adjoint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 658,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.18008041381835938\n",
      "0.01709747314453125\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "prob = ODEProblem(f, sensitivity='interpolated_adjoint', solver='dopri5', atol=1e-3, rtol=1e-3, atol_adjoint=1e-3, rtol_adjoint=1e-3)\n",
    "t_eval, sol_torchdyn = prob.odeint(x, t_span)\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "sol_torchdiffeq = torchdiffeq.odeint_adjoint(f, x, t_span, method='dopri5', atol=1e-3, rtol=1e-3)\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "true_sol = torchdiffeq.odeint_adjoint(f, x, t_span, method='dopri5', atol=1e-9, rtol=1e-9)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 659,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0.8758590221405029\n",
      "0.8945267200469971\n"
     ]
    }
   ],
   "source": [
    "t0 = time.time()\n",
    "grad1 = torch.autograd.grad(sol_torchdyn[-1].sum(), x)[0]\n",
    "t_end1 = time.time() - t0\n",
    "print(t_end1)\n",
    "\n",
    "t0 = time.time()\n",
    "grad2 = torch.autograd.grad(sol_torchdiffeq[-1].sum(), x)[0]\n",
    "t_end2 = time.time() - t0\n",
    "print(t_end2)\n",
    "\n",
    "grad_true = torch.autograd.grad(true_sol[-1].sum(), x)[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 660,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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3nnnWZ53yZIlRERUv359AkB33XUXzZ8/n7766ivq06cP5efnh68pXrw4AaC33nqLiIh2v/subapalSZL9/7kk08IAJ133nnhMrzzzjtpz549RBT5rmvXrq18DrlzCyDcwfMr6H/77TciIpo4cSItWLAg/E4OHDhgOTeqwzFnTljQHzhwIOreTveXufTSS6OuER2mAQMGWM7Nycmhrl270ttvv+2qUInvQHzz8j1uueWW8Hnvvvtu+HvZt29f1DN8++23UWkXFBRQ7dq1qXPnzp6e0S/xCvq3APyKiNn+FwAzwJ3q7na7PhlbMgS914/EjhB4w4YN0147atSocEMg96Q//PBDixby/PPPEwD64IMPwvtWrVoVvvc999wTJRynTp2qzavqAywoKAj/rlGjBh133HEWq4H9WUVH5qWXXiIiruHff//9VKFCBUvakydPDjeKYt+hQ4eoY8eO2gapR48edPDgQW3Zrl+/3nL+ySefTEREX3/9NQGgqlWrho/JPfJvv/2WevfubblWdJLsgt5yX0nQHzx4MNxz37ZtGwGg2267LSqPubm5Uem99tpr4f9HjRqlrRetW7emcePGhc/96aeforQc+/vW1dEZM2YQADrjjDMoLS1Nee7KlSupoKCAzj77bAJA8+fPJyKir776yrOgf+WVVyg7O5vGjRtHCxcuJABUq1atqGv69OljEZRERG3atLGkJTpZ4vfNN99Ml112GRER7dq1iypXrkxff/01ERFlZWVp8yd3CHXIdVL+puTt/fffpwsuuEDZ4J988smW/UKo//PPP1HHhgwZQocOHaKaAC0FaL6Ut/nz5xMAOvvss4mIC1oAdMcdd0SVteCRRx6hWrVqUZ8+fWj37t2Wc7744ouo55A1ztzc3HBHRj5n7dq1ln0lS5YM/3/11VeH/9+6dWs4rW3btlHOggX8G5k+nfbs2aNtZ4iIlixZQjfffDP9/fffUVqwsBSKLS8vL9z+nXbaaeFy0b0n1fvt1asXTZgwIXyeUAjE1rdvX5o3bx5t2rSJ3nrrLQJAHTp0oK1btyrvY+/kvP766+Fjo0eP1ta1WEGcgn4RgNLS79IAvgRQAsAat+sLc0Mhme5XrFgRpUGIF/jcc8/R119/TatWraJffvmFnn/+ectxO0LjHTx4MA0ZMoS++OILy/HRo0dT48aNw9eLRnHz5s0E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\n",
      "text/plain": [
       "<Figure size 576x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(8,3))\n",
    "ax = plt.subplot(111)\n",
    "ax.plot((grad1-grad_true).abs().sum(1), c='black')\n",
    "ax.plot((grad2-grad_true).abs().sum(1), c='red', alpha=0.8)\n",
    "ax.set_ylabel('gradient error')\n",
    "ax.set_xlabel('samples')\n",
    "plt.legend(['torchdyn', 'torchdiffeq'])\n",
    "plt.yscale('log')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "torchdyn",
   "language": "python",
   "name": "torchdyn"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
